{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 345,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#!/usr/bin/env python3\n",
    "# -*- coding: utf-8 -*-\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from scipy import signal\n",
    "from pylab import *\n",
    "import os\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号\n",
    "fs = 256\n",
    "\n",
    "def rd(filename):\n",
    "    # filename = 'X:/3_2 运动算法资料/4_data/data.dat'\n",
    "    fid = open(filename, 'rb')\n",
    "    fid1 = fid.read()\n",
    "\n",
    "    data = []\n",
    "    ecg = []\n",
    "    acc = []\n",
    "    acc_x = []\n",
    "    acc_y = []\n",
    "    acc_z = []\n",
    "    #根据.dat写入格式，将两个8位组合成一个数据\n",
    "    for i in range(0, len(fid1), 2):\n",
    "        if fid1[i] >> 7 == 1:\n",
    "            data.append(((fid1[i] - pow(2, 8)) << 8) + fid1[i+1])\n",
    "        else:\n",
    "          data.append((fid1[i] << 8) + fid1[i+1])\n",
    "    fid.close()\n",
    "\n",
    "    #根据数据存储格式，将数组切片，前5位为ecg数据，后3位为三轴加速度数据\n",
    "    for i in range(0,len(data),8):\n",
    "        for j in range(5):\n",
    "            ecg.append(data[i+j])\n",
    "        acc_x.append(data[i+5])\n",
    "        acc_y.append(data[i+6])\n",
    "        acc_z.append(data[i+7])\n",
    "        acc.append(np.linalg.norm( [data[i+5], data[i+6], data[i+7]], ord=2))#加速度二范数\n",
    "\n",
    "    return ecg, acc, acc_x, acc_y, acc_z\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 346,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# butter带通滤波\n",
    "def butter_bandpass(data, fre, lowcut, highcut, order):\n",
    "    nyq = 0.5 * fre\n",
    "    low = lowcut / nyq\n",
    "    high = highcut / nyq\n",
    "    b, a = signal.butter(order, [low, high], btype='band')\n",
    "    new_sig = signal.filtfilt(b, a, data)\n",
    "    return b, a, new_sig\n",
    "# 对于丢数片段，进行插值处理，权重向量计算\n",
    "def interpolat(acc):\n",
    "    #以下求权重向量w_i\n",
    "    n = fs #需要拟合的点的数量\n",
    "    w_ii = [1/(n-ii) for ii in range(n)]\n",
    "    w_i = [x / sum(w_ii) for x in w_ii]\n",
    "    for num in range(len(acc)):\n",
    "        if acc[num] == 0:\n",
    "            if num > fs:\n",
    "                acc_i = acc[num-n: num]\n",
    "            else:\n",
    "                acc_i = acc[num+1: num+n+1]\n",
    "            acc[num] = sum(np.multiply(w_i, acc_i))\n",
    "    return acc\n",
    "\n",
    "# # 设置动态阈值\n",
    "def thr_mean(acc_norm): # 其中acc_norm长度为1分钟的倍数\n",
    "    acc_norm2 = acc_norm.reshape(t, 1, 3072) #创建3维矩阵\n",
    "    acc_mean_t = [np.mean(acc_norm2[tt, :, :]) for tt in range(t)]\n",
    "    acc_mean = np.dot(np.transpose([acc_mean_t]), ones((1,3072))).reshape(t*3072)\n",
    "    plt.plot(acc_norm)\n",
    "    plt.plot(acc_mean)\n",
    "    plt.show()\n",
    "    return acc_mean\n",
    "\n",
    "# 通过积分方法PIM计算活动量\n",
    "# 具体算法1：以每分钟为计数单位，将每分钟分为6个10s片段，求6个片段中的积分最大值\n",
    "def pim(acc_norm, thr):\n",
    "    acc_norm = abs(acc_norm - thr)\n",
    "    acc_norm = acc_norm.reshape(t, 6, 512) #创建3维矩阵\n",
    "    # 计算每个epoch=10s的积分，并求最大\n",
    "    delte = 1/(fs/5)\n",
    "    acc_pim = []\n",
    "    for epoch in range(t):\n",
    "        acc_epoch = delte*sum(acc_norm[epoch, :, i] for i in range(512))\n",
    "        acc_pim.append(max(acc_epoch))\n",
    "    \n",
    "    return acc_pim\n",
    "\n",
    "# 过零检测模式ZCM来计算活动计数\n",
    "def zcm(acc_norm, thr_zcm):\n",
    "    thr_zcm = thr_zcm*ones(len(acc_norm))\n",
    "    acc_zcm = acc_norm - thr_zcm\n",
    "    acc_zcm = acc_zcm.reshape(t,3072) #3072为1min的采样点\n",
    "    zcm_count = []\n",
    "    for tt in range(t):\n",
    "        c=0\n",
    "        for sam in range(3071):\n",
    "            if acc_zcm[tt,sam]*acc_zcm[tt,sam+1]<0:\n",
    "                c+=1\n",
    "        zcm_count.append(c)\n",
    "    return zcm_count\n",
    "# 时间阈值模式TAT来计算活动计数\n",
    "def tat(acc_norm, thr_tat):\n",
    "    thr_tat = thr_tat*ones(len(acc_norm))\n",
    "    acc_tat = acc_norm - thr_tat\n",
    "    acc_tat = acc_tat.reshape(t,3072) #3072为1min的采样点\n",
    "    tat_count = []\n",
    "    for tt in range(t):\n",
    "        c=0\n",
    "        for sam in range(3071):\n",
    "            if acc_tat[tt,sam]>0:\n",
    "                c+=1\n",
    "        tat_count.append(c)\n",
    "    return tat_count\n",
    "\n",
    "\n",
    "#   Webster's算法\n",
    "def webster(acc_act):\n",
    "    D = list(zeros(4)) #暂时将前4分钟及后2分钟赋值为0，后面会再次赋值\n",
    "    for i in range(4, t-2):\n",
    "        w_d = array([0.15, 0.15, 0.15, 0.08, 0.21, 0.12, 0.13])\n",
    "        a_i = array(acc_act[i-4: i+3])\n",
    "        d_i = 0.025*sum(w_d * a_i)\n",
    "        D.append(d_i)\n",
    "    D = D + list(zeros(2))\n",
    "    return D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 347,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 批量读取数据\n",
    "##当使用固定阈值1g时，th_sleep=28,th_deep=16 此阈值设置偏高，易把久坐不动判断为睡眠状态\n",
    "# th_sleep=18,th_deep=5  此阈值设置偏低，易把睡眠状态判断为清醒\n",
    "#当使用动态阈值acc_mean时,th_sleep=5,th_deep=1 仍将部分久坐判断为睡眠，那么考虑频谱分析\n",
    "# path = \"F:/工作任务/睡眠监测/data/CA-30-F3-FF-FE-CD2-9/9403\"#文件夹目录 \n",
    "path = \"F:/工作任务/睡眠监测/data/2018/2/10/FC-00-00-00-00-4F/43509\" \n",
    "# path = \"F:/工作任务/睡眠监测/data/2018/2/4/FC-00-00-00-00-4F/43284\" \n",
    "# path = \"F:/工作任务/睡眠监测/data/FC-00-00-00-00-4F/9442\" \n",
    "# path = \"F:/工作任务/睡眠监测/data/FC-00-00-00-00-4F/9443\" \n",
    "# path = \"F:/工作任务/睡眠监测/data/FC-00-00-00-00-4F/9445\" \n",
    "# path = \"F:/工作任务/睡眠监测/data/FC-00-00-00-00-4F/9454\" \n",
    "# path = \"F:/工作任务/睡眠监测/data/14/FC-00-00-00-00-4F/9701\"\n",
    "# path = \"F:/工作任务/睡眠监测/data/2018/3/21/FC-00-00-00-00-4F/9859\"\n",
    "# path = \"F:/工作任务/睡眠监测/data/2018/3/21/FC-00-00-00-00-4F/9860\"\n",
    "# path = \"F:/工作任务/睡眠监测/data/2018/3/21/FC-00-00-00-00-4F/9862\"\n",
    "# path = \"X:/3_2 运动算法资料/4_data/Text2018-02-06/FC-00-00-00-00-4F/43285\"\n",
    "\n",
    "\n",
    "\n",
    "files = os.listdir(path) #得到文件夹下的所有文件名称\n",
    "acc_norm = []\n",
    "acc_x = []\n",
    "acc_y = []\n",
    "acc_z = []\n",
    "for file in files:#遍历文件夹\n",
    "    file = os.path.join(path, file)\n",
    "    if os.path.isdir(file): #判断是否是文件夹，是文件夹才打开\n",
    "        filename = file + \"/\" + \"data.dat\" #data.dat文件目录\n",
    "        data = rd(filename)[1] #调用data_reading模块，返回加速度二范数（共5个返回值中的第2个）\n",
    "#         data_x = rd(filename)[2]\n",
    "#         data_y = rd(filename)[3]\n",
    "#         data_z = rd(filename)[4]\n",
    "        \n",
    "        acc_norm.extend(data)\n",
    "#         acc_x.extend(data_x)\n",
    "#         acc_y.extend(data_y)\n",
    "#         acc_z.extend(data_z)\n",
    "        \n",
    "\n",
    "# 读取单个文件数据\n",
    "# filename = \"F:/工作任务/睡眠监测/data/CA-30-F3-FF-FE-CD2-9/9403/18-02-09 05-33-20/data.dat\"\n",
    "# acc_norm = data_reading.rd(filename)[1]\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 348,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将加速度数据存为txt，移植c用\n",
    "# f = open(path+\"/\" +'43285.txt', 'w')\n",
    "# f.write(str(acc_norm))\n",
    "# f.close\n",
    "\n",
    "np.savetxt('X:/3_2 运动算法资料/4_data/Text2018-02-06/FC-00-00-00-00-4F/43285/43285.txt', acc_norm)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 349,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "00:18:22\n",
      "18\n",
      "1102\n"
     ]
    }
   ],
   "source": [
    "# 读取起始文件名，获得监测时间\n",
    "\n",
    "def t2s(t):\n",
    "    h,m,s = t.strip().split(\":\")\n",
    "    return int(h) * 3600 + int(m) * 60 + int(s)\n",
    "def t2m(t):\n",
    "    h,m,s = t.strip().split(\":\")\n",
    "    return int(h) * 60 + int(m) \n",
    "def s2t(seconds):\n",
    "    m, s = divmod(seconds, 60)\n",
    "    h, m = divmod(m, 60)\n",
    "    return \"%02d:%02d:%02d\" % (h, m, s)\n",
    "def m2t(minutes):\n",
    "    h, m = divmod(minutes, 60)\n",
    "    s = 0\n",
    "    if h >=24:\n",
    "        h-=24\n",
    "    return \"%02d:%02d\" % (h, m)\n",
    "\n",
    "t_start = files[0][9:].replace('-',':')\n",
    "m_start = t2m(t_start)\n",
    "s_start = t2s(t_start)\n",
    "print(t_start)\n",
    "print(m_start)\n",
    "print(s_start)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 350,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1285f128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "axis_s = range(m_start*3072,m_start*3072+len(acc_norm))\n",
    "\n",
    "plt.xticks([tt for tt in range(m_start*3072,m_start*3072+len(acc_norm),3072*60)],\n",
    "  [m2t(tt/3072) for tt in range(m_start*3072,m_start*3072+len(acc_norm),3072*60)])\n",
    "\n",
    "plt.title(\"raw acc_norm\")\n",
    "plt.plot(axis_s, acc_norm)\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 351,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEFCAYAAAACFke6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xt8FNX5+PHPkwsQIECAEPGCXAQB\nKwhGBEWNF7yAvWj7K7Vqa9Xa+tK29q7F+i221lat1Xpr/YqXWvVbq1VbFVEUFBWFoCKIIAqROwQC\nhDsheX5/zGyy2exmN5vdndmd5/165ZXds7MzZ87uPHP2zDlnRFUxxhiT2/K8zoAxxpj0s2BvjDEB\nYMHeGGMCwIK9McYEgAV7Y4wJAAv2xhgTABbsTU4Rke+KyBoR2Sgi4zO43Z+JyM8ytb1kicglIvJw\nCtYzWUTuTEGWTIZYsDe55hZgHHAo8CGAiPQQkWvSuVFVvU1Vb0t0eRH5TRqzkzIico2I9IhMV9V/\nquqPvMiTSY4Fe5NreqjqalWtU9XaUBqQ1mCfhP/xOgMJugan/EyWs2Cfw0RkqoisFZFVInJxWPrP\n3bTVInJRvPQY675ERB5z/7aIyNMiIhHrWSYi54S9p0pEThORWSLySFja4yKyXkRuFpFNIvKtVrab\nJyL3i8g6EflURM500/8oIhvcxxtE5CP38ePAfOAwN/2lsHV9R0RWuNv+blj6bBH5mog8KyKvJVjW\nvwmvrYtIhbueP4nIZhF5Q0SKYuXTfT5RRJa6TVDh63pYRK4UkQdFZHnY+he621gvIlPDlj/TXc9q\nEflVAnn/iluW60TkLjftajefhwHz3bx2DntPi+agaNuNVQ6JlKlJMVW1vxz8A/oBrwFdgIOBDW76\nBJzmjR5Af2AH0DVWeivrvwTYC3zRff8GYBRwBrAYKAGGu+ll7nuqgPeA8UBxWNpFwFPAA8DVwIOt\nbPd4d9kCYCwwL+J1jfKe/kBVRNpRwCKgJ1AGrA3L52zgE+BLQPcEy/s3wG/CnlcA+9z9KQQ+AM6L\nlU+gFPjM/dyKgY+AUe5rDwOrgMuAnmHrPwCMBrq77x0L9HLLfISbvhCYGPG5PRyx7enuZ1fglsnw\nsNeqgP4xPv+Hw55H3W68crC/zP1ZzT5HqeoqnJ/gPwUewwloAGcDj6nqNlWtUtViVd3ZSnprKlX1\nv+5yy3AO8nOAf6jqVlVdArwLnBT2nltU9U1V3RGWNhfYGfY/5vdSVd8FbgduBO4C+iRQHNGcBgwE\nluAEpq7AkWGvP6iq/1HV7UmuH2AjcI+q1rnb6N7KsmOBQ4B5wHKcE/RRYa+/qKrTVLUmLO1DVX3P\nzeN0dx0nAB+o6odu+sM4Qbc1l+J8Rk8Ag0muTFvbblvKwaSJBfscJSInAc8AK3BqYbGW+5qIHJxo\neoTPwh5rK4/Dn78TZT31Ef9jEpELgXuA93Fqi8kS4O+qepCqHoRzQTc8b9Hy2VYr1a320rwMYuVn\nVkR+no6THwl7nAc0RNlWZPk3X4Fz8bXSff9NMbaTqFjbbUs5mDSxYJ+7jsepJT5B85rdDOCbItLd\nDeZ34wSJWOmtiXbgTgcudHvADHXz8Wb7dqWZcW5enwO+nOB7tgC9RKSz+1eE08R1jogcJCLFODXO\n4SnMJ7Qe2LaIyOEiUigi3XGC7CgROVJEOgCvAGfGWf8IESl3A/Y5OL+M3gaOEZEviEg34Ns4n0ks\nR+A0B90LFAHHRry+GThcHD1bWU9r27UA7wMW7HPXU8AXgHU4QWyniAxR1ZeBx3HaZt8EfqyqG2Kl\nt3WjqjoTeBSn/f8/wKWqujEVO+R6GPg6sBLoAJS6wbK1PO0A/ojzS2Ql0FdVFwO/xQmQS3CaGT5I\nYT7j+QXwFrAeGKGqm4DLccqsCpirqs/FWcdC4A/AUuAhVZ2vqltwAu1TOO3+/1LVF+OsY6Gbjxtw\nPv8hYa/fgFPmm4GzYq0kie2aDJOmX1fGmGwhIhU4F4QrPM6KyRIFXmfA+Fuom2CETao6IuOZMcYk\nzWr2xhgTANZmb4wxAWDB3hhjAsA3bfa9e/fW/v37e50NY4zJKgsWLNisqqXxlvNNsO/fvz+VlZVe\nZ8MYY7KKiHyeyHLWjGOMMQFgwd4YYwLAgr0xxgSABXtjjAkAC/bGGBMAFuyNMSYALNgbY0wAWLBP\nkdU1u3n9k2qvs2GMMVH5ZlBVtqu4bTb1DUrVHyZ5nRVjjGnBavYpUt9gs4caY/wrbs3evQvQ/wH5\nwC6c+5mGP5+Mc/u6Fe4fwA9UdZGITMW5Jd48Vb0q5bk3xhiTkERq9hcCt6vqmcAGnFuPhT8/GxgB\nPKGqFe7fIhE5FhgPjAE2icgZ6dkFY4wx8cQN9qp6r6q+4j4txamlhz/fBIwFzhWReSIyTUQKgFOA\np927ys8ATopct4hcISKVIlJZXW0XN40xJl0SbrMXkXFAiaq+E+X5fOAMVR0DFOI03XQB1rpvrwHK\nItepqverarmqlpeWxp2h0xhjTJIS6o0jIj2Bu4CvRnsOfKiq+9zHlcBgYCdQ5KZ1xS4GG2OMZ+IG\nYBHpAPwLuE5VP4987i72qIiMFJF84CvAQmABTps9wEigKtWZN8ZvHpizgk837fQ6G8a0kEht+zJg\nNDBFRGYD14U/F5HJwI3Ao8AHwFxVnQm8CYwSkTuBa4En0pB/Y3zjQH0Dv3vhY8679y2vs2JMC3Gb\ncVT1PuC+iOSpURYdEfG+BrcHziTgTlVdmXQujckiu/fXe50FY1pI6whaVd0DPJXObRhjjInPLpoa\nY0wAWLA3JsWcoSXG+IsFe2NSRES8zoIxMVmwN8aYALBgb4wxAWDB3pgUsxZ740cW7I1JEWuxN35m\nwT4AFq/dzuqa3V5nwxjjIbstYQCce9ebAHbLRGMCzGr2xhgTABbsjUkxG1Nl/MiCvTHGBIAFe2OM\nCQAL9sYYEwAW7I0xJgAs2BtjTABYsDfGmABI5Ibj3UVkuoi8LCLPiEgHEZkmInNF5Pqw5RJKM8YY\nk3mJ1OwvBG5X1TOBDcA3gHxVHQcMFJHBInJ+Imnp2gljjDGtS+SG4/eGPS0FLgLucJ+/DIwHRgFP\nJpC2PHzdInIFcAVAv379ktoBY4wx8SXcZi8i44ASYDWw1k2uAcqALgmmNaOq96tquaqWl5aWJrUD\nxhhj4kso2ItIT+Au4FJgJ1DkvtTVXUeiacYYYzyQyAXaDsC/gOtU9XNgAU6TDMBIoKoNacYYYzyQ\nyBTHlwGjgSkiMgV4CLhYRA4GzgHG4tycZ04CacYYYzwQt2avqvepaomqVrh/jwAVwDvAqaq6XVVr\nE0lL104YY4xpXVI3L1HVrTT1tGlTmjHGmMyzi6bGGBMAFuyNMSaDavfWsWhN5lu1LdgbY0wGXfrQ\nfL5495s0NGT2lmYW7I0xJoMWrNrqyXYt2BtjTABYsDfGmACwYG+MMQFgwd4YYwLAgr0xafDv99Z4\nnQVjmrFgb0wa/OTJhV5nwZhmLNgbY0wGaWa71zeyYG+MMR4Qyez2LNgbY4yHrn92EU/MW5X27SQ1\n66UxxpjU+Mc7TqC/YEx678NtNXtjjAkAC/bGGBMAFuyNMSYALNjniE827uBvr3/mdTaMMT6VULAX\nkTIRmeM+niois92/pSJynYgcIiJrwtJL3WWnichcEbk+nTth4Et3v8nN05d6nQ1jjE/F7Y0jIiXA\nI0AXAFX9n7DXngL+DhwP3KSq94W9dj6Qr6rjRORBERmsqstTvQPGsbeuwessGGN8LJGafT0wGagN\nTxSR44A1qroWGAtcLiLvicjv3UUqaLrZ+MvA+MgVi8gVIlIpIpXV1dVJ7oIxxph44gZ7Va1V1Wg3\nTPwRcJf7eDpOcD8OGCciI3B+Cax1X68ByqKs+35VLVfV8tLS0iSyb4wxJhFJDaoSkR5AH1UNXRF8\nW1X3ua+9DwwGdgJF7utdsYvBxhjjmWQD8JeBF8OezxCRviLSGTgTWAwsoKnpZiRQlWwmjTHGtE+y\n0yWcBdwW9nwqMAvYD/xVVZeJyHpgjogcDJyD065v0kxVkUzPsGSM8b2Eg72qVoQ9/mbEa7OAoRFp\ntSJSAUwAbonR7m+MMSYD0joRmqpupalHjjHGGI/YRVPjO1++5y0m3P6619kwJqfYFMfGdxau3uZ1\nFozJOVazN8aYALBgn2O8ur+lMcbfLNjnCOttaYxpjQV7Y4wJAAv2xhgTABbsjclxk/82lynPLPI6\nG8ZjFuyNyXHvrqzhsXdXpX07yzfuYM3W3WnfjkmO9bPPMdYZx3hlwp/fAKDqD5M8zomJxmr2OcI6\n4xhjWmPB3hhjAsCCvTHGBIAFe2OMCQAL9jmiwb0yu377Hm8zYozxJQv2OebtT7d4nYVGe+vqeWnx\nBq+zYYzBgn3OUR91vrzx+SV8/x8LeG/VVq+zYkza/e8bK+h/7QscqG9I+D1n3/FGGnPUXELBXkTK\nRGSO+/gQEVkjIrPdv1I3fZqIzBWR68Pe1yIt1Tbv3Mfxv5/Jsg070rUJk6Q1W50mpdo9dR7nJDNW\nbtnldRZatXyjHSPpdMfMTwDYeyDxYL80g3ErbrAXkRLgEaCLm3Q8cJOqVrh/1SJyPpCvquOAgSIy\nOFpaOnbgtY83sbF2Hw/MWZGO1Wcdm+LYO9U79nmdhVaFBj2ZYEqkZl8PTAZq3edjgctF5D0R+b2b\nVkHTvWZfBsbHSGtGRK4QkUoRqayurk5qB4z/2fnHGO/FDfaqWquq28OSpuME8uOAcSIyAqfWv9Z9\nvQYoi5EWue77VbVcVctLS0uT3gnTxE+B1Ub1GuMfycyN87aq7gMQkfeBwcBOoMh9vSvOSSRamkkz\na8bxjp3cjJ8lE4BniEhfEekMnAksBhbQ1EwzEqiKkWbSzE+9cRr5MEsmtmffX8u/Kld7nQ2TYsnU\n7KcCs4D9wF9VdZmIrAfmiMjBwDk47foaJc2kmZ9q9narxOx0zT8/AOD/lR/mcU5MKiUc7FW1wv0/\nCxga8VqtiFQAE4BbQm380dKMyVViZzfjYymbz15Vt9LU+yZmmkkvH1XsG/myacmYgLGLpiZtglbP\ntYq98bOsD/ZWa4zgp0Z7Y4xvZH2wD7FalcOPod7OP8Z4L2eCvXH4KbAG7YJlsPbWZBsL9jlmznKb\ndsIY05IF+xyze3+911lowU+/NowJKgv2OcZPgTVozRp+n/XSBJsFe2NSZMVmf89nb4LNgn2O8WNX\nVP/lyJj0UT/9vA5jwT7H+Ol7FrDOOCbg/N77zIJ9jvFRrA+cQaVd4i/UBvfM+pSFq7eldJ0muLI+\n2PupJusLPiwPv/6sTbXS4o4pXd+tM5bx5XveSuk6TXBlfbAPkcD1/cgGQftMgra/JpvkTLA3jtYu\n0G6q3cutM5ayonpnBnNkst3+Aw08Wbma+gblrleXs3bbHtZu28Onm3awe/8BVJXtu+u8zqaJI2VT\nHBt/aK3FZMzvXwXgnlmfAfDnySN5cdEGBvTuQkODct3EYeTnpb52GoxGnNx1/n1vsXhtLb946kMA\n/vTKJx7nKDfUN2T2yLBgn2Ma2tA+/sCclXy0rrbx+enDyhg3qFfK8uLzzgkpF7m/DQ3K/voGOhXm\ne5OhFFm8tjb+QqbNwo+9TLBmnACLPC/4sY9+Nrvu34sY+uuXPNv+259uznjt0SQu05UhC/ZptmRd\nLeu378nY9tpyaLdYNk1xISCdcVpcnv2nhzftfuOTar75wLv89fXPPMuD8ZeEgr2IlInIHPdxPxGZ\nLSKvicj94jhERNa46bNFpNRddpqIzBWR69O5E3428S9zGHfza15nI6p0d4kMWCuOr2yo3QvASg+m\ncJi3siZquqpyz6xP+XyLTSvhhbjBXkRKgEeA0IiR7wFXquppwGHA0cDxwE2qWuH+VYvI+UC+qo4D\nBorI4PTsggkXlFq08a8pzyyKmr5pxz5unbGMSx6an+Ec+VOmu4snUrOvByYDtQCqOkVVP3Zf6wVs\nBsYCl4vIeyLye/e1CppuNv4yMD5yxSJyhYhUikhldbXNw54KbWrGydiJIRhnoFjD5YMyqCwk1t4e\ncK8f7K3z3zTcQRA32Ktqrapuj0wXkcnAR6q6DpiOE9yPA8aJyAicXwJr3cVrgLIo675fVctVtby0\ntDSpHQjWYZSANgSWdF+QDVpvnFj8FOszceKJtY1QeiJfi3dXbLHmnhRLquuliAwEfgac4Sa9rar7\n3NfeBwYDO4Ei9/WupPlisAUWhz9r9sHmRTEvXb8DgA8i5tZRTf+xEmt/Q9+3RCYMm3z/OwBU/WFS\ninLlP77vjeO24T8BXBpW458hIn1FpDNwJrAYWEBT081IoKr92TXxtCWARy6arqAUlJNKrGP30blV\n7N5/IJNZYdayTQB8usmD0dIB+byzTTK17WuBfsBdbs+bU4CpwCzgHeCvqroMeBa4WERuB74OvJCi\nPCekvkG55KF5zK+K3jMgV7WlaSbaz+1d+w4w6saXU3IvW5uvyPGb/y7hdy98HH/BFIrZlJKJbcdK\nd19Yuy1zXZFNk4SDvapWuP9/qap9w3revK6qs1R1qKqOUNW73eVqcdrx3wFOjdbun06bduxl9rJq\nrn78vUxu1nPtqdkDfLJxB1t313HbyzYkPpVqdu5P+r1LN9SyeG3rh8+OvXX89vkljRc/vRxLFftE\nk9tV/tAANr/uZVrb0VV1q6o+qaob0rcN53/k/T9DtcqgNCGEtGUIdqbKJigfQWttsO0JdGffMYdz\n73qz1WX+8upypr25kn/OdwZyxZo2IyMXaGOl5/gXYY97oj1Q788dzfoRtMs3OReiXl26qVl66MDz\nZ7H7Q6sHfgqOTLto3iSdNe1rn/6Q/52zEgirXcbYXluy8cCcFUnlJxXbzmYH6hu8zkJUWR/sY32x\nQoEmssZvmkQrOr/fWi1bpbNW+3/zW07LkIo5cX73wsc0JLGeWL9igjbewG+yPtjnxQhOXk0A9d+F\n62K+VrV5V6tf+N37D7D/QNtqBarK3a8tb9N7Yq8rPQdkUI7x1i9IZ6YQQodDaLqEFrnIQDZibSNI\nc7I1NCibd7Ze0fR910u/iTX9+h+nL81sRlw/eOJ9nv9wHf2vfYFTbp3VmH7LS0upuG02A657ke8/\nuoAZH21onCuk4tZZbN9dx/AbZvClu9+krr6B1TW7UdXGe5C+/kk1N09v6tHR0KBU79jHHTOXJ30x\ntbUDf18bTzrRbLMbWjTyS6Br67WDZLIdsxknIGf9Cx94l/te/4zy381kdc1uwOkK+9vnlzTriZTp\n4sj6+exj3WzjxcVpuyYc19WPvw/A51t2N6bdO7tp9sGXPtrASx9t4M+TR3LrjGUA/HGGc3JaumEH\nJ/7hNTbt2Mc1ZwzmjpnLeeg7x/Eddz6R684Zxpqtu/n5vz5k7oot7cpn5IGvKBtr9zXmo71C+cvk\nrJ9+1dZA55epiVMZoP2xR+m3fNPOxuP6mn9+wHdO7N8YE6a9udKzfGV9sI/VxlyQJyTf2S0zQoEV\noC6sJr3Jvc6w4POtAHweMXPhabe9zv4UXASKdhzv3Jf6wT8HfBK40q21n+UfrtnO7v0HyM8TOhbk\n8/anm9m2p47j+vekV5cOfLSuli8c0g0Roa6+oc3NeeGe/zB2U2JmmnFitdmnf9t+s+DzrY3HcaRM\nN+NkfbCP1Yzj1+5P4cKzXh/lSAidyCJjZSoCPbQ8+CRNw6DScKfDrLNl136G3zCjXevof+0LfPmY\ng6ndU8esZdEHvU3975K463lt6Uau+PsC3r9hAsWdCltdNqlmnJjp3h6Tb3xSTXGnAkb1K0nq/Vt3\n7aekS4cU5ypzsj7YhzfjvLdqK6MO64GItAiIH6+vpX+vLuTlQceCfFSdJot9B+qp2bWfPt068e6K\nLRzRpysjDu0BODceGda3mO176ijqkE/HAuf2clOeWcRj767i1Z+eQr+enSnMT+7SR/iZfUmU/vGh\nXQvvM71td/zfKzOXbKRqyy4uGz+g1d41kSMZL5r2btx1JyPWRXTTds99ELvWnoj6BuXOmcs50KB8\nVr2LwX260rEgj3kraxg3qFeL78tPnlzY5m3EbrNve377X9s08P7sow7izguO4et/e4fLxg9g3MBe\nlBZ35EB9A79+7iO+fcLh9O1WxLyqGsYf0Zvz7n2LpRt28LeLj+Wsow7iWw/OA+AXZx/JLS8t47j+\nJTz5vXEs37STpRt2ULNzHzc+v4TS4o6cN+pQThvah8F9upInwryqGr7790omHd2Xu785qlk5bd9d\nR/fOrZ80/UD8ctGkvLxcKysr2/y+P7/yCXe+2tQb5eQhpRR3LOCFRetTmb1Aau8kVKED9dfnDuey\n8QPa/L5smwRr8drtcQc/+cnULx3F//zno8bnXTsWcN9Fo7l42rx2r/uDGyawbttehh/crTFtybpa\nJv5lDuB8tgfqG1CIWlkKD/K56oUfjmfSX5q+L8l+30VkgaqWx1su62v2kZXGNz6xefFTZdvu/XQo\nyKNzhwJeW7qRIWXFHFrSudkydfUN3PziUq4+7Qh6uj9xN9buZVnYBd7aPc175dTurWNNzZ5mgQCc\nuyoVZcnNuRsalHrVpH/V+UF4oAfnek0qAj3AMTe+AkD/Xp2pCuuoEHLHzE+4Y2ZTJa2sW8dm17CC\nINNzR2V9zf57j1Yy46ONaciRSUaXDvns2p+am1MM6N2F7540kF89s4hvHHdY4+Chw3t1buzp1LVj\nAZ0K8/l6+aF0cJsjavfWsXhty2ax7kWFbN8TvTvo/3xxOP+cv7pZL6ShBxWTJ8KS9c3X9Z0T+/PQ\nW1Up2UdjQtJds8/6YH/5I5XM/NiCvfG/y8YP4JdnD6W+QalraGBvXT0PvlnFyYN7M79qKyVdCskT\nYX5VTbvb5k32sWacuPxxsjImnlOP7EOHAqfZp4h8unUq5NpzhgJwwhG9G5e7aOzh3PmNUY3t1tO+\nXc5ljzgVoc9+P5H8PKd75s69Byjp0oG9dfUM/fVLGd4bk21yINgb428iTk+UAw3JdZk9fVgZi6ee\nRUGeNPY+K8zPa+wG2Kkwn5U3T+SBOSs5tn8JAry0eAN/e2MFIw/tzsI1GZ1d3PhU9l5dcvXoHL/f\n6xF9unJc/xKeu+pEAMb079n42m+/fBTFHZ1z3k8mDAHgpMG9+dqxhzJl4jDmTTmdj6ae1bj8fReO\n5sdnDOGOycfwg9OO4Obzj+aSE/onnN8LxvTjZ2cOaXz+2OXHM2F4GV8dfSiF+eLuUyG/OPtIfnH2\nkcz5xal8etM5fP+UQcz8ycmceEQvfn7WkY3r+NHpg3npmpOabeOXZzu1xZ+fdST/vbrFfd6jevrK\ncQnvg2mb0PfjoO6dkl5H6NpELCLCd08eyOh+JYzqV8Kxhzt9yUuLOya0/tAxYHJX1n/Ch4X1Drl8\n/ACumTCErh0LmnXdmvmTUxofh9rFVtfsZvf+eo48qJiLx/VvfP2Hpw+Oup3w9rRzjm75+sNvVwHw\n0wlD+H7FoLi9NK4+rWk7J7o/4f/09ZExlw/93H/s8rFR1xFy/qhDuLJiEFdWDGp1++GGHlTMsYf3\nZN6U03lqwRpueWlZwu818f160nAuHns4A0u7ZmybTY2bzXt8PHb58RzXv2djc1K0XkWZ6PYYOp7q\n6hvYtruO0uKOrNu2hwZVigrzOfZ3MwG46bwvMPELfRt/xby4aD3vr9rKlEnDo65334F6OuTnISLU\n7NpPcacCKqu2MqxvMTv2HqBjQR6F+Xn06FzY6hiURWu2s31PHWMH9mR/fQMfrNrWrKntnRVbWFWz\nmxMGOX39Gxpg2A3Nm9JC3Uurtuxi7mdbGFTalROO6O1Zt9KsD/bhrj83+hcgmsN6do6/UBJOHdrH\n0+54yUxRPOLQ7gD0Ke7Ewd2LWrx+ypBSXne7tA7u05VvjOnHb5+PP1Iz5CvHHMwd3xjV6jIbtu/l\nuQ/Wctn4ARwxZToQ/YLV6prd1Ozaz8jDevD+qq2cd+/bzPvV6fTp1omaXftpUKVHkXMgb9m1jz7F\nndi0Yy99iqPXqvcfaGD5ph0cdbBTBpt37qNbp8LGYBiuvkHJE2c0bEnnDi3mZXr0nc/59bOLW7wv\nL08yGugh/ObezdNPDAtY4OQtL8VdAMM/t8079/HTJxeyt66eH5w2uMXAvcL8vMZfHwf3aPndu/D4\nw5s9n3h0XyYe3TfmtkMDH4HGrsDjBvUCEmsFCDnaPSYACvLzmgV6gLEDezF2YK+46ynIz+OIPsUc\n0ac44W2nS0LBXkTKgKdU9SQRKQT+DfQEpqnqg4mmpWMHYg3B/ta4w/n73M/TsclWeT1aNJnzTHie\nw7PfWu+ARAZJhWowYwbEPygO6t6J750S/9fIYT07N56oR/UraZbHnhFD2UMBPlagB+hQkNcY6AF6\nd43d7BEK7q0t4x/OceH12OXeXTvyyKVjABpngDSOv1wwih8+8X7Gthc3NIhICfAI0MVN+gGwQFVP\nBL4mIsVtSMuYLxzSPf5CaVCQ73Wwb/v2031+KvS4TDIlsugvb8Oo4VSLVbP3kp/y4geZLo5E6oH1\nwGQgNLKkAnjSffwGUN6GtGZE5AoRqRSRyurq5Ea+xhomEH4RNpO8rtkfc1iPNr9HmtXsU5f/IWVO\n00XkqNuguP7c4Z5N+RA6LDI9StMkznc3L1HVWlUN77vVBVjrPq4BytqQFrnu+1W1XFXLS0tLk9uD\nGEI13EOitAOmUzI161QKb7NMlMR43F4lbWgjNanlx5q9aS7TJ+JkriTuBEIRtKu7jkTTMqbxhuMZ\nHiGcn4VHV3iW05F9r6e2zRSvf9WFC5W5j7Jk9zeO4LuafRQLgFDn7ZFAVRvSUi5WGPHqi5WXhSMX\n0lXDaPwIghHrfdVg0liz91WuTLhMfzLJdL18BHhRRE4ChgPv4jTXJJKWcvFaTTIdZwqyMNqnq+Up\naIHGTxXXxu+9n/Lkk3m4/MK3NXtVrXD/fw5MAN4CzlDV+kTTUp15cAYEAQzv23y63D7FHRnWtxs3\nnx9lBFQademYHVP0hkv3r6CgHOJ+OrmFAmsyOSrrlp6upRbrI2X2+5LUoCpVXUdTT5s2paWeU2CH\nljS/EFuYn8f0H50U7Q1p1blthFThAAALSUlEQVRD9o1Ta9Zmn8IvoJ9quhnhw/1N5kQ+99rTeX/1\nVr5639w05MiE2D1os5zXx3syF0PDA3xaLtBajS4pU790FGMGJNeFuKnNvu3y8oRjD/em63KueOXH\nJ8ddJtMX9HMg2Fskaa+0tdl7febLsFTv7rfbMMFeJD/2xgnJdHdoLwxKYHoMPw6qygp++VL7JR9t\nEZ7ndNQ2gtL10k9dC9tTs083HxVTWrzy45PJS6AG5dsLtH5lTQTtFx6kijo4F5iPTsF0E6HmoaB8\nRh6Pp2umaVCVfzIVlO9BohMhWpt9kvzSE8JPB1eioo2g7dG5sP3rzb6iaBc/7W/TdAn+k0g5DSnr\nyunDWgy6zwrRZkyNJtMxK+uDfUAqC2kV7QSVylqYfUaZp35ux0nAyz8+Jf5CPpXwSV9g5c0TGXDd\ni2nNT0jWN+OE+KlWlW3Cy25QH+fC0rkjYs8ZbqLrlMS8ROkSulPVF0cenPQ6QmNYUqVrJ6duOS6B\neeCzWaI19jyRjLYEZH3N3rRft05NTTaH9Chi+U3nUJDCBuigjJz08qY1kQaWdm33jJvPXnUim3fu\nY/wfZ6UkTz27dOC1n56S87OgJtoEmg3TJfhKQOJISjx95Tg279zP9x5dwHmjDmHttj3U7Nrf4kYk\nqQpa2Xj9wjTpVJjPoSWdqfrDJNZv38OOvQdYUb2L7/9jQYtliwrz2VMXf5B8pu/Y5YVEZ761C7RJ\nsrgSX2igTKbmWL/mjMEsWVfLqH4lGdme13L5O9i3exF9u8OQsmLmXncaH6+v5bShzS+genVv1Ww1\nOMO3Ksz6YB+UPtyJ8tMvndH9Sqi8/gyvs5ExuRzswzmBP/cHRqVL6FdQt6LMhl//NDK2k1+6Xprg\nsu+g8bOcCfbGGJMNvGqNyPpg76dmCxNwVrE3bWCDqpJlB1rOeOiS46irb/A6G21mX0HjZ1kf7K1i\nn3tOHdrH6ywkxbqamkR41RqR9c04IXaYGWO81NZzfVb0sxeRK4HJ7tMeODcXnwCscNN+oKqLRGQq\nMBGYp6pXtTez0QRldKbxP6twGD9LqmavqvepaoV7X9o5wN+AJ0JpbqA/FhgPjAE2iUhaO1zbT2iH\nnfu8Y1/BYEv04/fqEG1XM46IHAKUAeXAuSIyT0SmiUgBcArwtDpV7xlAixvCisgVIlIpIpXV1dXt\nyUrgnXiEM7mUBRzvRN703gSL3yuc7W2zvwq4D5gPnKGqY4BCnKabLsBad7kanJNCM6p6v6qWq2p5\naWlpO7MSbN87eRDQNNuhybxuRe2/B4Ax6ZJ0bxwRyQNOBaYAHVR1n/tSJTAY2AmExlR3Jc0Xg/19\nTk2/k4eUZmzOGxNd0L+DQZfw55+FvXFOAt51m2keFZGRIpIPfAVYiHPRdry77Eigqj0ZjcXaqI0x\nfpJoTMqK3jius4A33Mc3Ao/jnNz+o6oz3Zr/zSJyJ3C2+5c2Pm8uM8bkuFAM8uvkjEkHe1X9Vdjj\nxcCIiNcb3B44k4A7VXVl0rk0xvjepKP7cvKQ3l5nwzPO9AfxA71XJ4O0jqBV1T3AU2ndhk/PosYE\nzT0XjvY6C76QcDNOhq/y2AhaY4xJBZ8HoawP9naB1hjjBwkPqsrC3ji+4vcBDcaYYPBrb5ycCfbG\n+MnJQ/wzSPDjG9PaEc64Eg3ekeeCm88/mscvPz7l+YmU/VMcWzNOXEPKulLev6fX2QiM/Dzh75eO\n8TobjYo65HudhUC464LR3DPrUzoWJFaHDp0bLhjTL32ZCpP1wT7EGnFie/nHp3idBWNy3oThZUwY\n3mJWGN/I+mYcq9gbY7KJV9OyZ32wb2RVe2NMFsl0p5KsD/Z28xJjjIkv64N9SKZHoxljTDKy8uYl\nxhhjkpPp6mnWB3trxDEmvooj/dPv33gjd7peWiuOMTE98K1y9tc3eJ0NAxzcvYi12/ZkfLvZH+yt\nam9MXAX5eRTkZ/0P+Zzw1JXjeO/zbeTlZbaGmv3B3uV1xX76j07io3W1HufCGON3fbsXMWlEUfwF\nUyxngr3XhvXtxrC+3bzOhjHGRJX1v+tOG9aHsm4d+e7JA73OijHG+FbW1+x7d+3Iu786w+tsGGOM\nr7W5Zi8iBSKySkRmu39Hi8hUEZkvIveELdcizRhjjDeSacYZATyhqhWqWgF0AMYDY4BNInKGiBwb\nmZaqDBtjjGm7ZJpxxgLnisipwCJgGfC0qqqIzADOAbZHSZsZuSIRuQK4AqBfv8zM6WyMMUGUTM1+\nPnCGqo4BCoEiYK37Wg1QBnSJktaCqt6vquWqWl5aaiP8jDEmXZKp2X+oqvvcx5U0BXyArjgnkJ1R\n0owxxngkmSD8qIiMFJF84Cs4tfjx7msjgSpgQZQ0Y4wxHkmmZn8j8DjOoNX/AL8D5ojIncDZ7t/n\nwM0RacYYYzzS5mCvqotxeuQ0cnvbTALuVNWVsdKMMcZ4IyWDqlR1D/BUvDRjjDHesAunxhgTABbs\njUmR0A2kOxXYYWX8J+vnxjHGL/LzhCkTh9ldoYwvWbA3JoVs9lXjV/Z70xhjAsCCvTHGBIAFe2OM\nCQAL9sYYEwAW7I0xJgAs2BtjTABYsDfGmACwYG+MMQEgqup1HgAQkWqcqZGT1RvYnKLs5Aork+is\nXKKzconO7+VyuKrGHbbtm2DfXiJSqarlXufDT6xMorNyic7KJbpcKRdrxjHGmACwYG+MMQGQS8H+\nfq8z4ENWJtFZuURn5RJdTpRLzrTZG2OMiS2XavbGGGNisGBvTICISE8RmSAivb3Oi8ks3wZ7EZkm\nInNF5Ppoz1t5X5mIzAl7PlBEXhWRD0Tk1+nOd7pFKZdm+9vK+4aJyHNhz48TkTdE5EMRuSydec6E\n8HIRke4iMl1EXhaRZ0SkQyvvC8z3RURKgOeBMcAsEYnZNztI5RKWViYi78d5X9aWiy+DvYicD+Sr\n6jhgoIj8MuL54BjvKwEeAbqEJV8N3KCqxwBntfYF97so5XIcLfc32vsGAbcC3cOSrwMuAEYBP0tP\njjMjslyAS4DbVfVMYANwdoz3Ber7AowAfqKqNwEzgNEx3heocgmLJ7cBRa28L6vLxZfBHqgAnnQf\nvwxcH/F8PICIFInIY2HvqwcmA7VhaVuAESJSBnQEtqUv22lXQfNyOIGW+4uIDBCRP4Ul7QC+GrGu\nLcBIYAD+Hh2YiAqal0utqr7iPi8FNoF9X4CBqvqOiJyMU7ufC1YuwHgROQ3YhVM5AHKvXPx6D9ou\nwFr3cQ3QOeL5aABV3QNcGHqTqtYCiEj4ul4CfggcCrwGHEhjvtMtslz6q+r2iP1FVVcCPw17Hgp2\n4Ys9B0wCzgT+nb4sZ0RkuYwGEJFxQImqvgP2fQFGi7Ozk4GtQB1YuQBjgW8B5wHPhhbKtXLxa81+\nJ00/p7oCDRHP25Lva4FLVHWKu44JqcqkByLLpT2f3yWqepWqXgOcKiJD2p0777QoFxHpCdwFXNrG\ndeX090UdVwEfAl9qw7pyuVwA7lXVZGrlWVMufg32C3CbanCaGi6LeF7VhnUNAA4TkU44Nb5sHlgQ\nWS5V7VjXCBHpISI9gKPIrXJZA/wLuE5V2zq5Xi5/XwpF5Fvu8x60rckhl8vlIuAqEZkNHCMiD7Rh\nXdlTLqrquz+gG7AQuB34GOfCYrPn7nJFwGNR3j877PEkYAVOu/UTOBdmPN/HVJVL5P66zwcAf4pT\nLpfh/JTdDvzZ631Lcbn8CKeZYrb7N9m+L3wMHA68ArwB3EvToMqgl0v3GPucU+Xi2xG07pXvCcAb\nqroh8rm3ufOOlUN0Vi7RWblEF8Ry8W2wN8YYkzp+bbM3xhiTQhbsjTEmACzYG2NMAFiwN8aYALBg\nb4wxAfD/AbHLTCVFBOwoAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x13c682e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#对于丢数的片段（最长不超过5s），通过插值法补数\n",
    "\n",
    "acc_norm = interpolat(acc_norm)\n",
    "\n",
    "plt.title(\"acc_norm after interpolation\")\n",
    "plt.xticks([tt for tt in range(m_start*3072,m_start*3072+len(acc_norm),3072*60)],\n",
    "  [m2t(tt/3072) for tt in range(m_start*3072,m_start*3072+len(acc_norm),3072*60)])\n",
    "\n",
    "\n",
    "plt.plot(axis_s, acc_norm)\n",
    "plt.show()\n",
    "\n",
    "# plt.title(\"acc_x\")\n",
    "# plt.plot(interpolat(acc_x))\n",
    "# plt.show()\n",
    "# plt.title(\"acc_y\")\n",
    "# plt.plot(interpolat(acc_y))\n",
    "# plt.show()\n",
    "# plt.title(\"acc_z\")\n",
    "# plt.plot(interpolat(acc_z))\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 352,
   "metadata": {},
   "outputs": [],
   "source": [
    "temp_x=[0,0,0,0,0,0,0]\n",
    "temp_y=[0,0,0,0,0,0,0]\n",
    "butter_i=0\n",
    "y=0\n",
    "def butter_bandpass_by_one(x):\n",
    "    global y\n",
    "    global butter_i\n",
    "#     b = [0.6404957,0.,-1.92148711,0.,1.92148711,0., -0.6404957]\n",
    "#     a = [1.,0.09825509, -2.11845638, -0.11905002,1.58884383,0.04037319,-0.41018215]\n",
    "    b = [0.10454208, 0., -0.31362623, 0., 0.31362623, 0., -0.10454208]\n",
    "    a = [ 1., -3.3496998, 4.54411275, -3.46002677, 1.74365223, -0.52770977, 0.0498888]\n",
    "\n",
    "    temp_x[6] = temp_x[5]\n",
    "    temp_x[5] = temp_x[4]\n",
    "    temp_x[4] = temp_x[3]\n",
    "    temp_x[3] = temp_x[2]\n",
    "    temp_x[2] = temp_x[1]\n",
    "    temp_x[1] = temp_x[0]\n",
    "    temp_x[0] = x\n",
    "\n",
    "    if(butter_i<6):\n",
    "        butter_i+=1\n",
    "        return 0\n",
    "    \n",
    "    y = y + b[0]*temp_x[0]+b[1]*temp_x[1]+b[2]*temp_x[2]+b[3]*temp_x[3]+b[4]*temp_x[4]+b[5]*temp_x[5]+b[6]*temp_x[6]\n",
    "\n",
    "    y = y - a[1]*temp_y[1]-a[2]*temp_y[2]-a[3]*temp_y[3]-a[4]*temp_y[4]-a[5]*temp_y[5]-a[6]*temp_y[6]\n",
    "\n",
    "    temp_y[6] = temp_y[5]\n",
    "    temp_y[5] = temp_y[4]\n",
    "    temp_y[4] = temp_y[3]\n",
    "    temp_y[3] = temp_y[2]\n",
    "    temp_y[2] = temp_y[1]\n",
    "    temp_y[1] = y\n",
    "    return y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 353,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nNMaMBwaJyNBwZclYge+27mLArW/ywbdbkjH7lNPgoauq3li8CYBVZd462kgWr6/no7O+czuEtHb1\ns/P5eEUZVbX1UX/mEQf/J9HU7OuBi4BK+/U44EoR+UpE/mCXTQBm2M/fBY6JUJZwX621arJvL9mc\njNmrBPDOz09ybd9T43YIrfpfB2uRynvaTPbGmEpjTEVQ0VtYifxwYLyIjMSq9Zfa75cDPSKUNSMi\nk0WkRERKysr0oo9E8FJi1R5CSnlHPCdoPzPG7DLG1AMLgKHAbiDPfr/Anm+4smaMMVONMWONMWOL\ni4vjCEWF8lArThMvxpQE6fLj9p9FG3llwQa3w1AJFk+yf0dE9heRjsDJwBJgPk3NNKOANRHKVJJ5\nqc1ex+tJTddPW8Avpy9yO4y0ZxyuBcVzBe1dwCygBviHMWa5iGwC5ohIL+A0rHZ9E6ZMJZl3Un0T\np3dqt4j+uikPizrZG2Mm2H9nAcNC3qsUkQnAScAfA2384cpUknmpZu92AA7TXK+8LGFj4xhjdtDU\n+yZiWaL5pdYYLS9uDQ/9/ijlW2lzBa3WqiybKrxz71a/NWv4a21VqkmbZK8sXrqCNkBr9kq5T5N9\nmvFSYvVbTXfZ5l1uh6BURJrs04wXz2F4L6LkqNhb63YIygOMl2pcQTTZp5kYxmBKOp812VOQm9h7\nAb29ZJMOIpdCYj1HpePZx8ijP6Lu8eD28GpNJ9GG9+6c0Pld/dxXnP7QnITOU/lXyif7APFdC3F4\nrTXjlO7cy1/eW8GabXuorW9wIAn77X+S+PXdVV2X8HnGqq6+gZnzN9DQYHjq0+/ZVLGXjTv3sqS0\ngrJd1TQ0GHZ4fBA4pfegTTut5e+j7/8QgIc+WAnAHWccxIPvraB7QS6V+2r5+JYT6NwhO/ExJXyO\nyknnPvYpS0or+fWL1hAKU/7zjcsRqXikTc1eWWIZG+flr0qpqqlnXXkVO6tqWVKa2Iuc/dZmH7q+\nL3+1gVP/+rE7wQCfrNxGfQJO4iwprWx7IuV5muyT7B8freK9b5y7sUosX+0W0yapCu6TJvsWbpqx\nyLXumB+tKOOSJ77g77Odv2HJ3prIN+9YX15FTZ3eqtINmuyT7P63lnHVMyWOLS+WxJrsNnufVew9\ntb5bKq0rqddsd743zy0vLQ5bXrmvlmP/OIs7Xv3a4Yi86au1Oxxdnib7NBNTzd6xGrc/qvaRut55\nqTeSE7F8uyl8s8/ufdbJ5jkrt7U5j93VdVTXRX97v1RU63A/6ZRP9t75GnlDLF/mZI9977c2+0jc\nuPZh4869AKzdvqdZuRO/O5H2wcD+lhHFjjH8d+9w4T/nJjQur4nlxuSJkPLJPiDc/vPxijIq9/nr\nqsaYmnEivH5tYWlCt5uHKrZJFSmFHfTbt/lqnbOH7K8t3AjAl2ucXS5E/n8HykvtH6K2eHGcp0Ry\n+kZDaZPsQ5XvqeHHT87jmufmux2Ko2LZgcJNu3zzLn7xwkJueTF8u2ss9NoHS019A1M/Wh335+ev\nLeezVa03fVTuq+V3ry1hX63V9BGpF44T6SXSMrx0F7Vk2G1fExHtWjp9xJfyyT7QDhioyQTU1ltn\n/Fdu2e14TG5aujH6bnLhvntVNdb23FSZuKGS0/sr3qS11on2JLof/P1zLn78i4jvL1y/kx889hlP\nf76WF+atA1pJ9jHEsXhDfDXrSOua5rm+UbS9jbRmH6MNO6zeBntrm5/MCXzxtu6qdjQeL52Ma0to\nrM1eJmA9tM2+STJrcec++ikrt1qVmsBi6hrCJ5xYwjj7kU/j2p8jfSTda/YB0bbFO50rUj7ZZ2WG\nX4VvYqjhJtLNMxdTtquacx/9lOe/WNtYvnRjBQNufZPfvrqE977ZwvfbrBNnizfs5P/mrKauvoHH\nP17N+99swRjT2Fd5227rx2rDjio+CerFYIyhocHwzcZKBtz6ZlyxtrZP1idgRwzUcHzyHW+12crp\nL/aWyvCVnFjDiCfsSEndS4P0JdPMrzbw/bY93PjCgsbvwKaKvXz23bZm1yBU7nV2KIyUHy4hMyP8\nF+z6aQscjsQyc/4GZs7fAFiH1wFn/O0TAJ6du5Zn51o/Ak/99HAu+9eXAFTV1PPgeysA6F6Qy7bd\n1dx73nBuf2UJM68ez8WPf0FNfQNr7j+DJaUV3DxzccQubtEK/VIaDOX2GCeJuGryg2VbASjf4+zR\nlRfFWqttT0+N1n5YYh0CO54oIp+g9Ue2/+Pby/nj28sB+GzVdm4+5UBuntnyHNi3m52tkKZtsq9O\ngav0lgddXbkuaCjbQG3+7SWbAVhSWkFNfdP6nPnwJwlZfrjv3o6qxPdeqmrlisp00lqz1azlZXEf\ngQVc8dSXnH1oL/bV1vObl6wLk84a1avZNHf95xvuamXsGmNga+U+ZpSs59oThrQ5LG88TS+Ru17G\nPKuE+m7rbvJyMundJS+uz++rradDdmZMn9m6qzpsogfnj3hTPtlnBSX7v89exU+PHkBWhjQ7STLv\n+3L+9O5yRvcrYkTvQobsV8De2nqmf7mOfbUNFOZlU1vfQG19A9mZGZw9qhcH9erMiyUbOLRvF15f\nWMqQHp0oLsihe0EuF/zjcwB+ceJQ8nIyGd2vKK7Yn/9iXePzwNFAsMDFJ3VB35Jp89a1mC5UIKl8\nfttEPl5RFnG60C5wlz4xr815xyPSD7KKzQfLtjYeLQX8Z9HGCFOHN3/tDu5/axlfl1Zw3AHFbK7Y\nx6INO1m7vYrfnzu8xZj8Q29/K+Y4y3aHP5KL54cj9Ady0kE9eP/bLRTkZnHBmD4MKs5n+pfrWbqx\nkvycTGrqG6itN9x62jDuf2sZACP7FHLdCUOY/GzLnnnPXnEE7yzdzHNzm3+vhu5XwPY9NZTvqeHm\nUw6kR+cOjQPB3XPucE4b3pPVZXuo2FvLjJL1XDS2b8zr5vQ5DPHKodXYsWNNSUnswwr85b0VjaM4\nqsRaeOdJ5GZlkpeTyZLSCnp1yaNrfk6zaYwxzChZz1mjetExx0oUO6tqWF++l7MesY5AfjnpAH4x\naWjjZ/bW1FO2q5p+3To2m9eWyn3kZGZw2D3vAbDm/jOSuXrt0tBgqG1oIDerqaa3pLQiYUdd6eL2\n0w/i3v9+26L8bz88jBumLeCCMX0oWVPOMUO7U7pjLyu37mbDjuj64ae6S8f1b2zShfj3dxGZb4wZ\n2+Z0qZ7sb5i2gNdjrN0opZTXJDvZp3wzTqBfuFJe9/MJg7nppAPYUVXLlsp91NY38ObiTYzs24XP\nV22nMC+bbvk5vPn1pmYn95VKhJRP9kp5nYh1Mu6IgV3JysyguFMuxZ1yATjMPt9zdtCJ1quOGwQ0\ntVcv//2pfLG6nKKOOYzoUxh2GV+s3s5NMxZxzJDuDO9TyJINFUwvWc+BPTqxfIs7wywrb0n5ZL9f\n5w4tyjrmZDbrATLpoB506pDFDScO5eLH53LU4O689JV1QnTqpWP497x1zF5exiMXH8a0eesY2acL\nedmZ9OvakWOHdic7K4PzHv2UVWV7eObyI1hbXkVhXjY7q2oozMumbFc1v3+zZbtksO4FuQzr2Ylx\ng7rSszCPf360ipVbd/P6dUfz5uJNFOXnUFVdx5zvtjGqTxcO7tWZ+gbD8QcU0zU/hxfnb2DisP2Y\n+tEqhu3fmZzMDO57axnXTxzCiD6FnP/YZ43Lev7KI7nmuflMOfsQRvbpwqQHP2pzO75x/TFMeX0p\nJQ4Pu+oH0yeP58qnv+TQvl3i+nxuVibHHVDc6jRHDurGp7dObHz97tLNTC9ZT9+uHSMm+0N6dW68\n4vrIgV354vvyuOJLVX275rG+3B/nByDKZC8iPYCZxphjRSQbeBnoCjxhjHky2rJkrECPTk3JftGd\nJ1PY0bqtXvBZ/P/7SVNz1ue3nQjAny8c1Vh28iE9G5+fObJ5V7aAD341odU4Asn+5Z8fFVXvnAvG\n9Gl8PrJPUxK46eQDw05/6bj+ANx1zvDGsh8EzSN4vkcP6c7iKae0GUPAhWP7MLx3ITOvOYpXF5Ry\n4/SFUX82GvsXdmDGz8aTkSG8uqCU4k65DOyez/ryKgZ0z2dYz06sLtvDDx+fy4Vj+/LEJ98D8MrP\nj6K4Uy5rt1exeEMFJx60HzO+XE+nDtlceexAHpv9HY/OWsW0q8bRrSCHWcu2snzLLnKzMrhgTF/e\nWbqZcYO68siH37F+x17uPXc4+blZdMjOoLrOOrlasqac97/dwgVj+nDHq0s4+eCeXHxkP2rqGzhq\ncDe2VFTTtSCHrZX7WLl1N/27dWRpaSXjBnfji9XbOXtUL/bW1rO3tp6nPl3DY7NXtVj/IwZ2jen/\nkQiBDlyhPSu/v+/0NrtbtreL6Ds3Hse23dUU5mWzcP1O7nh1iTXfbh0bx9dvq306EEPodFU1dVTX\nNlAU0lHAC0K3W3Dsu6vryM4UcrMy271949VmsheRIuBpIN8uuh6Yb4yZIiL/FZEXgauiKTPGJPx4\nMvgikUCiB7jzzIO5+w3n75XZMSe2friJlhVHN8fgIWeD80B7e8MEduobThxK365Wz5trTxjS+P7h\nA7o2Ph/eu5Cv7YQYSPaBJo4+RR05ekh3AO448+DGz9x8yjBuPmVY4+sDenRqtvwx/a3PTxzWI2KM\nY/oX8bPjBwNw0eH9Wrwf6DFUUFzAoOICAIb17AzA+aOtH9tOmRl06pBN76Lm/bcHF+ezqqz5EMPO\nCQwn3Ly0rUSfCAf27MSBWP+L4b0LucSuqKwvr+LYP85q17w75mTR0Xt5vk2hXVoBHrxwFDfNWORY\nDNEMl1APXAQELveaAMywn38MjI2hrBkRmSwiJSJSUlYWuT94ayJ1Jjp2aPe45tdeWRnujkARqU23\nNRkZwck+cclg/0LrqKt/SBfLdBU6XMJL1xzFG9cf40osjTV7D408qmMluavNzGSMqTTGBN+JOh8o\ntZ+XAz1iKAud91RjzFhjzNji4tbbJGMVuNIt3qvl4pWd6e4enZ8T+2mY4NpfIq9/6tfVH0k+IDSZ\ndemYw/Desf/4JkKgEuRy3aMZJ44qVGTx7Aq7gUAGLbDnEW1ZwkW6SiBQW3X6OoJIA7N5WTR3DopH\n42y9cSlH0nkplQWuztQE611O/2viyUzzgcCx6ShgTQxlCde7S8veOACdO1g13FOH75+MxUbUMcax\nM7wgacneTn8+yfVJ247xaEz2LscRzOnb8Hmd001s8XS9fBr4r4gcCxwMfIHVXBNNWcIV5llna04+\nuHkrUacO2Sy88yQ6dcgO97GEOznjS47LWEznvNMdWV4iBeeoRO6Agfl65CLt5EvCd3dYz05tT9SK\neH6APrt1Il+uKecXLyS2V5ZyV9Q1e2PMBPvvWuAk4FNgkjGmPtqyRAdvRxbxnS4dcxwbhGtqzl+4\nJOsD12tSsQ5hCw404/hEolf37RuPZfrPxsf12aZmnNg/26tLHucc2juu5SrL0rva7mrr9Pcjrouq\njDEbaeppE1NZopkI/Ynd4pU4YhH8e5iTlfhzDvH8AKWiRLePB7p4xqPxBK0Hd8g+Rc52mnDatKvG\nkR+mq6XbUu9sYgRe6WKWiifEghNCrp3sxw/q1u75NrbZ+yPXJ7QnU3s1db30jlj3g8P6xXfFsdtC\nR3P1ipRP9j7JI0klYZJ9l47tP9fR2Gbf7jmlBi+N2x+4uK+LB69Ayo6ix9o3d5/C9MnxNWG5LTPK\nCl9mhjDv9hOTHE2TlE/2ASlYofaM4MR+xMCu3H76Qdx3/oiEzd8rw2gnWzzXOCTLqYf0ZMpZB3Pz\nKeGH34jGS9ccxekjerY9YZT6ds3j6uMH8+Rlh7c5bcecrKQ0KTohPze6Hnmj+xWxX6fwvQmTwTt7\nZ5x8kkcS4pGLD2NPdR2/eelrLhnXj7p6w7bd1VxxzMDGaUSkcdTF9hqyXwFzVm6jyIO1y2TwUoUj\nI0O47OiBbU/YijH9ixjTfwzQdGvM9eVVcffSERFuPW1Y2xOmuGhvXej0+ZTUT/bE3+sgHbX24xcY\n5C3cGDDJcNtpBzFx2H6MinO0x1STzvtg4Erg0f2KOGtkL2rqG1okNbcG+FLRSflkH+CVE7SqSU5W\nBscOTewwGF7ml30wI0PokJF6Fw96TUp0vfQSbcZpW3/ZzB6T3t3dPMEfuV4liNO7S+on+8AT/aJF\n9FHuTfazi12NI1qvXXs0dSl4ab3ugsrLUj7ZB+gXLX2kaht/Kl5joRIncPvJaHVw+N4Xqdm3KYhf\nuvVFSzeHezTV+1us//9ODl9lm/LJPsDvtaoRdm8JL41f7jfD9m/foGUqtXk9B2lqSBPPXH4EPxnf\nnzNGhL+Hrko+v1xPoFJTyrfZGw+OAeKGovycZjcjV87z+z7od4336vFoU2ra1Ow9fgSllC8EbvLu\nR01jQXkz26d+zd6jG1Ypv1k85eTGgfT8yLqozni2Zp/6yV6bcZTyhM4O3RXOszyehNLmZ9jrZ8KV\nckvvLnr1tBPa02bvxPDYKZ/svXrIpPzthcnj3A6h0ae3TnQ7BF+4ZFx/ALIyY0vcH/zqeObelvxx\n7VO/Gcf+q/V65QVnZXzGAoYxLgF3+lKp5fbTD+KWUw+M6uYswQYXFyQpouZSPtk30myv3NZQx8M5\nj7DBdAcudTsa5bCMDCHXw6OBpnyy1+ESlNf0pNztEJSH5bOXfrLV8eWmfJt9gF/GElfeJ9odWLXi\niZw/8VbubdBQ7+hyUz7Z69dKeYdV4cgUAx/c43Iszd155sGM7FPodhgKOFyWubLclE/2gWyvPS+V\np8z5k9sRNHP5MQN5/bpj3A5DYbXtu7JcV5aaBJrrleu0xqGiENhLnL42KOWT/fjBVhe3C8b0cTkS\npZTyrph744hIFrDafgBcD1wAnA7MM8Zca093V2hZMvTt2pE195+RrNkrpVRyONyTMJ6a/UhgmjFm\ngjFmApADHAMcAWwVkUkiMia0LFEBK6VUanOnuS+efvbjgDNF5ATga2A58JIxxojIO8BpQEWYsvdD\nZyQik4HJAP369YtzFZRSSrUlnpr9l8AkY8wRQDaQB5Ta75UDPYD8MGUtGGOmGmPGGmPGFhcXxxGK\nUkqpaMST7BcbYzbZz0uA3VgJH6DAnme4MqWUGx6fCK/+3O0olMviScLPisgoEckEzsWqxQc68I4C\n1gDzw5QppdxQOh8WPu92FMpl8bTZ3w38G+ssw+vA74E5IvIQcKr9WAvcF1KmlFKqkd0bZ0ohDJoA\nP34tqUuLOdkbY5Zg9chpZPe2OQN4yBjzfaQypdJZhl5UpaIh0nKcl9Wzk77YhLSlG2P2GmNmGmNW\nt1aWFHU18Pb/wN4dSV2MUm3xfLJf2aJDnPKR1D9xuuQlmPsovPc7tyNx17zH4Z79vHXrrvo62LjA\n7ShUwPM/cDsC5aLUT/YNdfZfZ4cL9Zz//hrqq92OorlZv4epE2Dz125HopTvpX6yV94VqNXvdv5G\nDaodtq+Cbd+5HUX6S4HhEpT33SdyAAASKElEQVSKjtHxp1PSw6PhkTFuR5F6dm22mpXblDrDJSgV\nJb0dvPKRZ86BsmUw9BTIdeYm4rFIg5q9h05Iqua0Zq/8pMIeIcY0uBtHBGmQ7G2aTzxM/zlKuS19\nkr3yHq3Z+8vCabDyPbej8L6GWlcWq232Kol81ma/x+e9jl692vo7pcLdOFKG9sZR7bHuc7cjaBJv\nzX71bPguBa/23LbC7QhUqilzbp9J/WTvpStGvWDHWrcjCBJnzf6Zc+A5vdpT+cCjhzu2qNRP9o18\n0lTQJg/9+FXvsv56tHeCUn6SRsleec6WJdbfpa+4G4dSjvJQhSuIJvt048VmrfoatyNwhhe3vXJO\nrOemdLgEpVTS6A+Sb2myV8pP9PxJ8nj8hzQNkr23N7BSnuJ2Qlr/JdTscTeGpIuyOWeHszfwS4Nk\nb9OrNG364+cZ+ypg0yK3owjh4v6xZxs8MQlenuxeDF4SGEvHIemT7EM1NMBr18GmxW5HonzzQxyS\nSJ89H/55nDuhROJmzT5Qo9fvpMU4e8Ol9E32laWw4FmY9kO3I3FWa1/mmj1W7crvd/VySmmJ9dft\nppNmYoglMDa7MbBtZdPzwPqUrYAt31j3gd6X4CESdpdBTVVi5+k1Dn8P03dsnMCvpqTv71nM/tCr\n+esfzbQOqfuMhe4HwEl3Q0YmrP0Meo2G7A7uxJluTANIpttRWGL54Zl5OQz/AcybCm/dkryYwvnT\nEOgxAq75xNnlOklr9jEK3IN267Lm5YFeBxXrnI0n1OMTvXsz9A/uhr3lsPJd+PwRK8lvWwn/Og3e\nujmBC/JLM04EnuoBE8dRRun82Kaf/1Rilr0lVe9dHOV6OrxfpH6yDxxebpjXvPy7D5yPBWDL0uav\nS+fDp391bvk1u+P/rKm3mnkAypYnJh7wT5t9aK05cFQZ7+H6lC4w+/74PluzBx490ur9EizWJiVj\nYj86nvv31t9P190h1v3c4Wac1E/2mdnhy93qBbHmU3eWG/DVM/F/1pimQ8u66sTEA6Tvt7sNgZrb\nJ3+BfZXxzABm3wd7d0BVeduTByePpa9at8h79ryW84wphDiS/fYINyuvt8dx3+ny0XayRXv+wuGa\nfeq32WfmND3/9g048DSr3XnBs+7Es/A52LwIFjwH/Y5qKt/yDXz0AHTsah2NXPgMdCiED++BvTvh\njD9bY8jkdoYufWHDl3DoJbD+C+g/Hnauh/LVMOh4a341VbDsDfj+Y1g3t2k5W7+xBiDL7dR2rC1q\nFqapRr9pYbs2gwry0f2wcy2c94/4Pv/AAOtvpHHiv/gnzH8ati6Fq2ZB79Gw4i3rvZpdzaeN52Rx\nzDXWuuav91VYic1TI7ImQaCC9NcRcO08WDwdxlxm/ci9+BPYvAR++ELT9Fu/dTQ8MUnuKSAiTwAH\nA28aY34fabqxY8eakpKS2Bcw6z7ryxSP/GLYU9ayvOsgqN0Luza1fC+3EKpDvnQDjoU1c2Jffp/D\nraTellP+AO/8j/W87zgrEdfta/0zRQNh2BnQcyS8Eme/5gm3wZBJULAffPRHOPB0q5bZb5w1yFld\njXUSd8U7cOiPrC91px6wcYG1Y5c8Yc0ntzNc85nVQ8oYqN0DeUWw/2FWIqmrhqrtsHuz9T/56wjr\nc1d/AgU9obrSKt+yBPK6Wu9JBqz9BLr0h16HWf/HzvYJ6Ppa60crM9v6cd24AAr7Qufe1rrU7LEe\n1bus9cnMsT5bW2X9AOfkWydUt38H9dWQkWV9dtdmK5aeI2D5W9b+sd9BUNjPaq7LyrFOaoaTnQ+3\nrgXEit3UWz/M3Q+w3q/ebcVatR1yCqB8FfzjmObzuH2zNZ1psGLc/h0UDYAH+jdNM/G30P9omP4j\na16tCd3/O/WyfiiWvdHWntG2/Q62vkP9j4KFz7d8f/JHULEByr4FBLoNhoHHWxWaPdtg2kVtL6Pv\nkVC50dqGq4KabbPyoG5v+M+E+/4G5BVZ+0O4+Zz6ALz9m6b3DjnPWsfqSuvuXGUh5wzjEedNX0Rk\nvjFmbJvTJTPZi8j5wNnGmMtE5EngPmPMynDTxp3sX7xMR1VUSqW+JCf7ZLfZTwBm2M/fBZpVVURk\nsoiUiEhJWVmYGnY0Cvu2Jz6llPKFZCf7fCBwTXA50CP4TWPMVGPMWGPM2OLi4viWEE3btFJK+Vyy\nT9DuBvLs5wUk48cluBlq1MVwyr3QoQvcXdRU7sQNkKcUWn+PvxVOuK2pvL7Oatfr2NWZ5YPVHtrr\n0PDvhTPmpzDkRDjoLFj2Jrxwsf25oO3W0AAZMf77Ass9/ErrBHSsn0u1G1fvWAMPjWpZfvMq+Oxh\nOPFOq/NANOpr4Z7u1vN4tsNr11qdBEKFzqtig3VO46CzgqZpY39py9kPw+gfW+dFTIN1fqNuH3Qb\nCv86NXwcLeJMkX3AmKYT2KHbLVzsDQ1Nuemcx+C1nyc3viDJTvbzsZpu5gKjgAR23g7jvKD+vYNP\nbH7Sxil9Q+4pmZmV/EQfrGhg80QfjcI+QV/2CD0vYk30zfi062VAfnc46a7YPtPeK26jbd4s7GM9\nEmn0j62/OfnW35EXWn93rk/scrwg1p5K7foetU+yl/wqcKmIPAhcCLyZ+EVEOMF82h8Tv6hodOnf\n9jTJFNwVNVrBXTBzOlp/MxJYD/DLRVWJ1N6kMPhE6+8Bp7U/lkQJJP8O7TxySAWDJ7Y9jcPfi6Qm\ne2NMJdZJ2rnACcaYxB+TdegSvjy3wPpb0CP8+8kS7WF6ssRTSwvuFx2oUQaShUpNfcbCKffBuY+5\nHUkYaf7jf/k7cKn3eggm/ZjCGLPDGDPDGLM5KQvoYh+uhianwNVpTg+E5vSPS6jhP4j9Mwee2vS8\n/9Fw3C1wzqOJi0nF77BL4/ucCIz/efubEM+N80KwcNz6TjqtY/coJ3T2Ry/1r6ANnKDNym1e3rG7\n9Tg1zguu4uX2jtzaoWG4k3NZeZDfraksIwMm3p7ooBI8P5+4s9z9/enQH1qP2r2Q1cHav2r2WDfe\n6NTTupAut8C6IKmtE7t+SfbRNs843IyT+sm+sc0+ZMNl5cAtqxyPxv3EFsPyE31iTiWW202CtwXd\nSSk7r+l5Tj4U21f+dugc/fxiSfYn3gk9w/RsSgVR/5gJ/OQNePrMpIYTkAbJ3uaVk4Bux+H28sPx\nYkzJUFfT/HWfI1qOxppKAue9EiVwFB5NMjz2V4ldtpNiOXIZeGzy4giR+sneU3cBAvdr9l7kk21S\nHTLo2KWvhB97yevyi5NzlyjfNONEuX77j0xuHCFSP9l7jdu12Cy9u5RrQkd7zC1IfO3YCTclYFCv\ncDTZNxfoiuqQNEj2WrNv5oBT3F1+OG7/ADolNNmnqswkpQW/JPu8CN3BW9ATtLFpbAf0SEJxK46M\nbGio9c69Tttj3LWRh6j1snRJ9skSGMdqSBQXHKUkAYz1XYxqck32cfJIsncrDi/XmnoMj236U/+Q\nnDiSLZ6rl/2kY1e4YWH69gIT8eA5xCYezAyx8tjGda1mn+Xu8sMZcpL1Nz/OEU1TTaxjEvlR14GR\nbyWa8jz03QsjfWr2XklybsVx1QfW6IJu980OFjgBlbZf7lAe2Qfd5OdhNkRirHtqM05sPHzY5Kie\nI6yHl5z5F6t72aAJbkeinHDH1sQOoJdyAsk7ypykbfaxinAFrXJfx66pfXGMik3okCV+EzhfFnUF\nNI1GvXSUV5pxlH/pPuhvgf9/oLNEWwr2S14sYaR+stdmHKWUJ8TajONs+k39ZN9Ia1VKKRcdcq71\nN9p+9g5Ln2Svh9DKdboP+trZD8OvV1oj7npQ6id7bcZRSnlBZrbj7fCxSP1k30hrVUopFUkaJHut\n2SuP0KZE5WGp38/eawOhedEPp0Mnl++Nq5RyVeon+0aa7CMKvqG4UspbOvWCwSckfTFpkOy1GUd5\nhVY4VBx+9a0ji0mDNnubNuMot+k+qDws9ZO9dr1UXpGRCSfe6XYUSoWV+sleB0JTXqIDvymPSoNk\nb9NDaKVaV9jX7QiUi2JK9iKSJSLrRGS2/Rhhl98lIl+KyKNB07YoSwptxlGqdUffCGc8CL9c4nYk\nykWx1uxHAtOMMRPsx9ciMgY4BjgC2Coik8KVJTbsYNqMo1SrTroLDr/C7ShUgNh3k3O4ohpr18tx\nwJkicgLwNfAz4HjgJWOMEZF3gNOAijBl74fOTEQmA5MB+vXrF/9aWDNr3+eVSpTrSmDvTrejUF41\neRZ8+wZkONuK3mqyF5F/AgcGFc0CJhljNonIM8DpQD6wyn6/HOgB1IUpa8EYMxWYCjB27Nj4fua0\nGUd5TfehbkegvGz/UdbDYa0me2PMz4Jfi0iuMabaflkCDAV2A3l2WQFW01C4siTTmr1SSkUSaxJ+\nVkRGiUgmcC6wCJiP1T4PMApYE6EsOQYeZ/0dfWnSFqGUUqku1jb7u4F/Y1WjXzfGvC8iGcB9IvIQ\ncKr9WBumLDmK+sOUiqTNXiml0kFMyd4YswSrR05wWYPd2+YM4CFjzPcA4crS2lUfwsaFbkehlFJh\nJWQgNGPMXmBmW2VprfcY66GUUh6UPlfQKqWUikiTvVJK+YAme6WU8gFN9kop5QOa7JVSygc02Sul\nlA9osldKKR/QZK+UUj4gxiOjRopIGdYwC/HqDmxLUDjt4ZU4QGOJRGMJT2MJz0uxhNPfGFPc1kSe\nSfbtJSIlxpixGkcTjSU8jSU8jSU8L8XSHtqMo5RSPqDJXimlfCCdkv1UtwOweSUO0Fgi0VjC01jC\n81IscUubNnullFKRpVPNXimlVASa7JXyERHpKiIniUh3jcVfPJvsReQJEflcRO4I97qVz/UQkTlB\nrweJyAcislBEfutkLEHxLLCfF4nIf0WkRET+maBYmq1vK587SEReC3p9uIh8LCKLReQKJ2Oxpx0u\nIu/ZzxP6PxKRQhF5S0TeFZFXRCSnlc8ldX+JJZageJKyv4hIEfAGcAQwS0Qi9s12YLtEHUtQPEn7\nHoUuo404ErpdnOLJZC8i5wOZxpjxwCAR+U3I66ERPlcEPA3kBxVfB9xpjDkUOKWtnSpRsQT5E5Bn\nP78UeN7us9tJRGLquxsmlsNpub7hPjcY+F+gMKj4NuCHwGHAr2OJoz2x2J8V4EEg2y5K6P8IuAx4\n0BhzMrCZCPdAdmJ/iTaWIEnbX7BuKXqTMeZe4B1gdITPObFdooolSDK/R4HvcPAywn0u4dvFSZ5M\n9sAEYIb9/F3gjpDXxwCISJ6IPB/0uXrgIqAyqGw7MFJEegC5wE6HYkFEJgJ7sL7kgViGi0gXoC+w\nvp2xHEXL9UVEBorIn4OKdgE/CJnXdmAUMJD4rg6MNxaAnwKzQmJJ5P+o0hjznv26GNhqx+LG/hJt\nLE7sL4OMMXNF5DisGvXnEWJxYrtEG4sT2+WYMMtwars4xqvJPh8otZ+XAx1DXvcA6z63xpgfBT5k\njKk0xlSEzOttYBxwA/AhUOdELPbh+m+BW4Pm9QnQ347lW/vz7YklL8z6Yoz53hjzq6DXW40x1SGT\nvYZ1Q/jrgJdjjCPuWESkG3AJVi0qINH/ox72ssYDRcaYuXYsbuwvUcXi0P7Swz6qugjYAdSGi8Wp\n7RJNLA5tl75hluHUdnGMV5P9bpoOpwqAhpDXscR9K3CZMeZ2ex4nORTLrcBjxpjgX/rfAVcbY+4G\nlmHVcNsTS3v+f5cZY641xtwInCAiBzgUy/3AbcaY2qCyRP+PMkSkK/AwcHmM83IrFkf2F2O5FlgM\nnB3DvBK+XaKMxYntQphlRKu928UxXk3287GbR7CaGq4Ieb0mhnkNBPqKSAesdsFYLyyIN5ZJwLUi\nMhs4VET+DygCRohIJnBkAmKJtOxojBSRLvah8CEOxnI88EDQdvk9if8fbQBexPpRiXVwPbdicWJ/\nyRaRH9uvuxBbk0Oit0u0sTixXS4Js4xotXe7OMcY47kH0BlYhHUS71usE4vNXtvT5WGdqAn9/Oyg\n52cAq7HaradhnZhxLJbgeLDaJpdi1SzeAwraG0vo+tqvBwJ/bmO7XIF1KFsB/CUR/6NYYgnZLon+\nH/0Cq2lgtv24yMX9JaZYkry/9Lfn8zHwGE0XVbqxXWKKxYnvUZh1Tvp2cfLh2Sto7TPfJwEfG2M2\nh77WWJxftsaisWgsqcuzyV4ppVTieLXNXimlVAJpsldKKR/QZK+UUj6gyV4ppXxAk71SSvnA/wfv\npGnZcBrkaQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1411f780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "b: [ 0.10454208  0.         -0.31362623  0.          0.31362623  0.\n",
      " -0.10454208]\n",
      "a: [ 1.         -3.3496998   4.54411275 -3.46002677  1.74365223 -0.52770977\n",
      "  0.0498888 ]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ 6.14051748e+00,  2.38859299e+00, -4.29588077e+00, -8.06897090e+00,\n",
       "       -5.54319959e+00,  1.48965158e-01,  3.40485654e+00,  2.31032321e+00,\n",
       "       -5.60470438e-01, -2.36570312e+00, -3.26543841e+00, -4.72927761e+00,\n",
       "       -6.13685137e+00, -5.33085007e+00, -1.89991501e+00,  2.07159823e+00,\n",
       "        4.12256318e+00,  3.32946769e+00,  8.23594761e-01, -1.32520292e+00,\n",
       "       -2.15860123e+00, -1.88350986e+00, -5.67611191e-03,  3.83973837e+00,\n",
       "        7.02761085e+00,  5.78690349e+00,  7.84282612e-01, -2.76387143e+00,\n",
       "       -1.65509795e+00,  1.64224970e+00,  3.03252256e+00,  1.84095945e+00,\n",
       "        1.58618120e-01, -8.12896344e-01, -1.43980056e+00, -1.65115014e+00,\n",
       "       -7.95998940e-01,  3.85539293e-01,  1.70026092e-01, -9.28374891e-01,\n",
       "       -3.12710196e-01,  1.89462279e+00,  2.19369044e+00, -2.43911939e-01,\n",
       "       -1.69175719e+00,  2.24665536e-01,  3.39227103e+00,  4.63627664e+00,\n",
       "        2.70105076e+00, -1.54871574e+00, -5.34692988e+00, -5.61742979e+00,\n",
       "       -2.25653220e+00,  1.27740327e+00,  1.83515283e+00, -3.25540519e-01,\n",
       "       -2.83517256e+00, -3.75066429e+00, -2.53278605e+00, -2.25917677e-01,\n",
       "        1.33540121e+00,  1.49263021e+00,  1.36824249e+00,  2.01141413e+00,\n",
       "        2.89529393e+00,  2.77101681e+00,  1.12694769e+00, -1.43860430e+00,\n",
       "       -3.21610091e+00, -2.13289892e+00,  1.74440785e+00,  4.93784684e+00,\n",
       "        3.82231201e+00, -8.32042758e-01, -4.25053716e+00, -3.18703338e+00,\n",
       "        1.96502476e-01,  1.28803618e+00, -8.89018432e-01, -2.83523081e+00,\n",
       "       -2.21459162e+00, -1.09330764e+00, -1.66571384e+00, -2.32669482e+00,\n",
       "       -8.97938788e-01,  1.15324490e+00,  7.72839425e-01, -1.82051852e+00,\n",
       "       -2.79031651e+00,  4.28741452e-01,  5.21553396e+00,  6.38388540e+00,\n",
       "        2.35283465e+00, -3.07153998e+00, -4.58204145e+00, -2.44867055e-01,\n",
       "        6.00512666e+00,  7.23660613e+00,  1.14504205e+00, -6.57912809e+00])"
      ]
     },
     "execution_count": 353,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 进行butter带通滤波\n",
    "data = acc_norm\n",
    "fre = 51.2\n",
    "lowcut = 0.5\n",
    "highcut = 11\n",
    "order = 3\n",
    "acc_norm_butter=[]\n",
    "b, a, acc_norm_butter = butter_bandpass(data, fre, lowcut, highcut, order)\n",
    "plt.title(\"acc_butter through butter filter\")\n",
    "plt.xticks([tt for tt in range(m_start*3072,m_start*3072+len(acc_norm),3072*30)],\n",
    "  [m2t(tt/3072) for tt in range(m_start*3072,m_start*3072+len(acc_norm),3072*30)])\n",
    "\n",
    "plt.plot(axis_s, acc_norm)\n",
    "plt.plot(axis_s, acc_norm_butter)\n",
    "plt.show()\n",
    "\n",
    "acc_norm = acc_norm_butter\n",
    "\n",
    "print('b:',b)\n",
    "print('a:',a)\n",
    "acc_norm[10000:10100]\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 354,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n2EtSAf4fjqyY1+IHHJAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x13c68128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(803580,)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "fid = open('X:/3_2 运动算法资料/4_data/Text2018-02-06/FC-00-00-00-00-4F/43285/43285_c.txt', 'r')\n",
    "# acc_c = fid.read()\n",
    "# fid.close\n",
    "# acc_c[100]\n",
    "\n",
    "df = pd.read_csv(fid,encoding = 'utf-8',header=None)#因为路径含中文，故不能直接读\n",
    "# acc_c = df.values\n",
    "acc_c = np.array(df)\n",
    "acc_c = acc_c.reshape(len(acc_c))\n",
    "fid.close()\n",
    "\n",
    "plt.plot(acc_c )\n",
    "plt.show()\n",
    "\n",
    "print(shape(acc_c))\n",
    "\n",
    "acc_norm = acc_c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 355,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 355,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_c[10000:10100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 356,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 活动计数\n",
    "\n",
    "# 通过积分方法PIM计算活动量\n",
    "# 具体算法1：以每分钟为计数单位，将每分钟分为6个10s片段，求6个片段中的积分最大值\n",
    "num_epoch = int(len(acc_norm)/(2*fs)) #10 s片段数量\n",
    "t = int(num_epoch/6) #1 minute片段数量\n",
    "acc_norm = array(acc_norm[:int(12*fs*t)])\n",
    "\n",
    "\n",
    "# 通过积分方法PIM计算活动量\n",
    "thr_h = 0 #设置固定阈值为0\n",
    "# thr = thr_mean(acc_norm)\n",
    "thr = thr_h*ones(len(acc_norm))#带通滤波后，选择0为阈值\n",
    "acc_pim = pim(acc_norm, thr)\n",
    "\n",
    "# 通过过零点ZCM计算活动量\n",
    "thr_zcm = 30\n",
    "acc_zcm = zcm(acc_norm, thr_zcm)\n",
    "\n",
    "# 通过时间窗口模式TAT计算活动量\n",
    "thr_tat = 30\n",
    "acc_tat = tat(acc_norm, thr_tat)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 357,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x16825ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ce22240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEFCAYAAAD36MwKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAFa5JREFUeJzt3X+0ZWV93/H3Z2bAEBAYyl2DP0IG\nEkxKViGaQRmL6QSBgklcBrOkCWqpNPNH0SZN2kUt1JKoTUINNkuXdE1CFtQQs/BnYiqKCAiJoM5E\nQJJWKToYkImj/BhJqxj49o+zp3M4c+5zzlzOzJ195v1a6657fjxn7+c8XD73M/uce3aqCknS/Fix\n3BOQJM2WwS5Jc8Zgl6Q5Y7BL0pwx2CVpzhjskjRnDHbtc0l+KckDSf42yWn7YH8XJLl6htv7UJKX\nzmp7z2AeVye5YAbb+d0k25I8keTh7vIPD93/mSRvnHa8lp/BruVwObAeeD5w9zLPZY9V1blV9Zln\nso0ka2cRyrNQVb9cVccAnwF+saqOqar/DZDkMOAU4OXTjNf+wWDXcjiyqv6mqr5XVTuWezLLZC1w\nwTLPYRr/BPgYsD6JedET/oeaE0l+PcnXkzyU5F8N3f7vknwtyd8kee2Y27+U5Jyh27cmOT3JzUmu\nGbr9XyT5Srf9X5piPrttP8lvJ9nWXd6W5K+m2M7Y/XbP98FuH6+b9HyBg5Jcm+RbST6YJI19bk3y\nR90+fzPJN5K8fuj+W5JsGLp+WZJ3Jvl4t/3fHbr9spHtrk1yG/Ah4KXdOvze0Jj/0M3//iQ/O2l9\ngJcnuTfJ/0qyrtvGbyb5T0Pb/EKSU6bY1tjtAx8Hvgy8aInb0L5WVX71/As4CngCWA38A+CD3e1n\nMjjUcSSDhvht4DDgDOCebvyJwDZgTfeYrcBfAqcBz+5u+zHgi91+1gAP7hy/yHwW3X53f035vMbu\nFzgWuAk4FHgusG3C870A+A7ws931bcALG/vdCrwW+ADw+8AbgT8Yuv8WYMPQ9cuAxxgcsnge8N1u\nzpcBl41sd213eQNwy8h+zwE+1T2vHwEeAg5qzPNq4PPA9wE/B3yxu/0ngDu7yz8AfHXK9b4FOHvk\ntju7/4ZvBS6eNN6v/ePLxj4fHgO+BLyTQbj98+72s4Frq+rRqtpaVc+uqscZBMgfVtUjVfXXwGeB\nlw1t7/Kq+vOq+nZ3/XTgeOCvgbsYhOOPNOYzafvTGrvfqvoa8CvArwHXMgj71vMF2FxVH+2ufwk4\nYsK+bwceH/o+6f+Vj1bV56vqQQa/OA4fM2bRfyV0zmDwy+E+4NPs+sXV8odV9Z2q+jBwfJLDq2oL\ncHiStQx+mX1gwjbGSnI0g1+uNwEXMXScXfs3g30OVNWTDALhAwyOiX4hycGj45L8fJKdQTH86W81\ncv2O0YcC/70GL5Idw+BFz9Exu02rsf1pjd1vkpcBHwa+QuM49cjzvW+RuS3myZHvkzS3n2QVu34B\nLSbA24ee77EM/pXSMrrOO/+f/hDwKuCVwPsnbGMxpwN/OrT2Lxn3c6X9j8E+B5K8gME/4T8FXAwc\nw+CQzCeAX0xyRBdw7waeAq4Hzk9yZJIfBV4C/HljFzcB5yQ5JsmzGbTnExvj93T7e7rflwCfA94H\nvGJo/GLPF5b2i2VPjNv+DgaHQgA2As8auu+bwPOTrEyyOslK4EbgNUkO7+Z/H4PDSi2/kORZ3fH4\nB6vq0e72DwLnA8dV1eeW+JxOZ/CvLarq/zD4Rbp+idvSPrRquSegZ66qvty9IPfV7qZ3V9VDwENJ\nXsjgOPXfA/+mqrYB25K8l8Hx6O8Ab6iqv21s/54kb2VwWGIV8F+r6s7G+Bv3ZPt7ut8kjzI43PR1\n4Drg8SQvqKobxj3fxuuke9sfA9cnuYHBc7h/5x3dc7uRQSN/EvjhqvpYkp9g8PrEk8CbquqbE/ax\nncGhpSd4+r9e7gCe081hqV7O4JfnTp/tbvv0M9im9oFU+Xns0jzp2v9TwA3ApVX12WWekvYxD8VI\n8+c5wMPAo4b6gcnGLklzxsYuSXPGYJekObMs74o5+uija+3atcuxa0nqrS1btnyzqhYmjVuWYF+7\ndi2bN29ejl1LUm8luX/yKA/FSNLcMdglac4Y7JI0Zwx2SZozBrskzZmpgj3JUUnO7D6fWZK0H5sY\n7ElWA38GvBi4OcnY91AmuSrJ7UkunfEcJUl7YJrGfhLwq1X1dgafd73beQ+TnAusrKr1DM7icsJs\npznwwAPwlrfAl7+8N7YuSfNhYrBX1aer6o4kP8mgtd8+ZtgGBp+LDYOPCj1tdECSjUk2J9m8ffv2\nJU32oYfgrW+Fe+9d0sMl6YAw7TH2AOcBjwDfGzPkUHadwuthxpwCrKo2VdW6qlq3sDDxL2IXmcfg\n+1NPtcdJ0oFsqmCvgYsYnBHnlWOGPA4c0l0+bNrt7qkVK3bOZ29sXZLmwzQvnl6c5PXd1SOBR8cM\n28Kuwy8nA1tnMrvd5jL4bmOXpMVN06w3Aa9LciuwEnggydtGxnykG3MF8Brgf8x2mgM2dkmabOKn\nO1bVI8CZIzdfOjJmR5IN3bjLq+qxmc1wiI1dkiab2cf2dr8Arps48BmwsUvSZL36SAEbuyRN1qtg\nt7FL0mS9CnYbuyRN1qtgt7FL0mS9CnYbuyRN1qtgt7FL0mS9CnYbuyRN1qtg39nYDXZJWlwvg91D\nMZK0uF4Fu4diJGmyXgW7jV2SJutVsNvYJWmyXgW7jV2SJutVsNvYJWmyXgW7jV2SJutVsNvYJWmy\nXgW7jV2SJutVsNvYJWmyXgW7jV2SJutVsNvYJWmyXgW7jV2SJutVsNvYJWmyXgW7jV2SJutVsNvY\nJWmyVZMGJDkC+GNgJfB3wHlV9cTImFXAV7ovgDdV1RdnPFcbuyRNYZrGfj5wRVWdBWwDzh4z5iTg\nfVW1ofuaeaiDjV2SpjEx2KvqPVX1ye7qAvCNMcNOBX4myeeSXNU1+KdJsjHJ5iSbt2/fvrTJ2tgl\naaKpj7EnWQ+srqo7xtz9eeCMqnoxcBDwitEBVbWpqtZV1bqFhYUlTdbGLkmTTTzGDpDkKOBdwKsX\nGXJ3VX23u7wZOGEGcxszj8F3G7skLW5iY09yMPB+4M1Vdf8iw96b5OQkK4FXAXfNcI5Dcxl8t7FL\n0uKmaewXAi8CLklyCXAzcFBVXTo05jeAPwIC/GlV3TjzmXZWrLCxS1LLxGCvqiuBKyeMuYfBO2P2\nusTGLkktvfoDJbCxS9IkvQt2G7sktfUu2G3sktTWu2C3sUtSW++CfcUKg12SWnoZ7B6KkaTF9S7Y\nPRQjSW29C3YbuyS19S7YbeyS1Na7YLexS1Jb74Ldxi5Jbb0Ldhu7JLX1Ltht7JLU1rtgt7FLUlvv\ngt3GLkltvQt2G7sktfUu2G3sktTWu2C3sUtSW++C3cYuSW29C3YbuyS19S7YbeyS1Na7YLexS1Jb\n74Ldxi5Jbb0Ldhu7JLX1Ltht7JLUNjHYkxyR5PokNyT5cJKDFxl3VZLbk1w6+2nuYmOXpLZpGvv5\nwBVVdRawDTh7dECSc4GVVbUeOD7JCbOd5vC+bOyS1LJq0oCqes/Q1QXgG2OGbQCu6y7fAJwG3Ds8\n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\n6wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x134ca7b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#更新横坐标\n",
    "axis_m = range(m_start,t+m_start)\n",
    "# axis_t = [m2t(a) for a in axis_m]\n",
    "\n",
    "# ax1=plt.subplot(111)\n",
    "# xmajorLocator = MultipleLocator(60)\n",
    "# ax.xaxis.set_major_locator(xmajorLocator) \n",
    "\n",
    "# 做映射，设置x刻度：用axis_t来显示刻度\n",
    "plt.title(\"score of each minute by PIM(red)/ZCM(blue) \")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "\n",
    "plt.plot(axis_m, acc_pim, 'r')\n",
    "plt.plot(axis_m, acc_zcm, 'b')\n",
    "# plt.savefig(\"活动量-PIM\")\n",
    "plt.show()\n",
    "\n",
    "plt.title(\"score of each minute by ZCM(blue) \")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "\n",
    "plt.plot(axis_m, acc_zcm, 'b')\n",
    "# plt.savefig(\"活动量-PIM\")\n",
    "plt.show()\n",
    "\n",
    "plt.title(\"score of each minute by TAT \")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "\n",
    "plt.plot(axis_m, acc_tat, 'b')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 358,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1321bd68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x140c7080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#   Webster's算法 D = 0.025(0.15A_4 + 0.15A_3 + 0.15A_2 + 0.08A_l + 0.21Ao + 0.12A+l + 0.13A+2)\n",
    "# acc_act = acc_pim #积分法计数获得的按分钟活动量\n",
    "# acc_act = acc_zcm #过零点法计数获得的按分钟活动量\n",
    "                     \n",
    "D_pim = webster(acc_pim)\n",
    "D_zcm = webster(acc_zcm)\n",
    "\n",
    "plt.title(\"Webster's score by PIM\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, D_pim)\n",
    "plt._show()\n",
    "\n",
    "plt.title(\"Webster's score by ZCM\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, D_zcm)\n",
    "plt._show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 359,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD6CAYAAAC1W2xyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAEWdJREFUeJzt3V+M7GV9x/H3Z845RARrIWxO1IQS\nGlJDIiehK3Ii1tUC8V8aQ42YWHuB5rRJ401vqoEbDdrEC5JWK+Y0pCEk2mAbibYS0ICFKCh7tPzp\nhbEhYKEQ1kI5YppaOd9ezOwf5/zmN8Myy+4z5/1KNjNn9tmd7+PsfHh85vf7/lJVSJIWx2C3C5Ak\nzZfBLkkLxmCXpAVjsEvSgjHYJWnBGOyStGAMdklaMAa7JC0Yg12SFsz+3XjSc845p84777zdeGpJ\nataxY8d+VlVL08btSrCfd955rK6u7sZTS1Kzkjw+yzi3YiRpwRjskrRgDHZJWjAGuyQtGINdkhbM\nTMGe5OwkVyQ5Z6cLkiS9PFODPclZwD8BlwB3J+k8hjLJTUnuS3LdnGuUJL0Es6zYLwL+vKo+A9wB\nXDw+IMlVwL6qOgycn+SC+ZY59NTz/8MNd/6YR9de2IlfL0kLYWqwV9W/VNX9SX6P4ar9vo5hK8Ct\no/t3ApeND0hyJMlqktW1tbVtFfvM8f/lr+/6dx77r19s6+cl6VQw6x57gKuB54D/6xhyBvDk6P6z\nwMHxAVV1tKqWq2p5aWnqGbET6hjenjixrR+XpFPCTMFeQ38GPAT8QceQF4DTR/fPnPX3vlSDUbLX\nTvxySVoQs3x4+hdJ/nj0z98E/rtj2DE2t18OAY/NpboJTpTRLkmTzLKyPgp8JMk9wD7giSTXj425\nbTTmBuCDwD/Pt8yhjRW7uS5JE03t7lhVzwFXjD183diY40lWRuM+V1XPz63CLdb32Mtkl6SJ5ta2\nd/QfgFunDnwZ3GOXpOmaaimwcVSMK3ZJmqipYB9sbMXsbh2StJc1FewwTHZX7JI0WVPBvr5ilyRN\n1lSwJ67YJWmapoLdPXZJmq6pYM/GHvsuFyJJe1hbwe7hjpI0VVPBPtjYi9ndOiRpL2sq2NcPinHF\nLkmTNRXsthSQpOmaCnb32CVpuiaD3VyXpMnaCnbW+7Gb7JI0SVPB7kExkjRdU8G+0VLAM5QkaaKm\ngt0VuyRN11Sw21JAkqZrK9hH1frhqSRN1lawj27NdUmarKlg3zzz1GSXpEmaCvbNM093tw5J2sua\nCvaNFbvBLkkT7Z82IMlrgb8H9gG/AK6uql+OjdkPPDr6Avh4VT0851o32CtGkiabZcX+YeCGqroS\neBp4V8eYi4CvVNXK6GtHQn19xS5Jmmzqir2qvrjln0vAMx3DLgXel+QdwMPAn1TVr+ZT4qaNPXY3\n2SVpopn32JMcBs6qqvs7vv0AcHlVXQIcAN7T8fNHkqwmWV1bW9tesfZjl6SpZgr2JGcDnweumTDk\noap6anR/FbhgfEBVHa2q5apaXlpa2laxXkFJkqabGuxJTgO+Cnyyqh6fMOyWJIeS7APeDzw4xxq3\n1DK8NdclabKpe+zAR4GLgWuTXAvcDRyoquu2jPk08GWGi+qvV9W3514pm90dbSkgSZPN8uHpjcCN\nU8Y8wvDImB03iHvsktSnqROUYLhqd49dkiZrLtgHcY9dkvo0F+wh9oqRpB7tBXvs7ihJfdoMdnNd\nkiZqLtgHiS0FJKlHk8FurEvSZM0Fe7ClgCT1aS/Y3WOXpF4NBntsKSBJPZoLdlsKSFK/5oLdlgKS\n1K+5YLelgCT1ay7YsaWAJPVqLtgHAXfZJWmy5oI9gRMndrsKSdq7mgv24ZmnrtglaZLmgn145ulu\nVyFJe1d7wZ54VIwk9Wgw2L2YtST1aS7Y7e4oSf2aC/bE7o6S1Ke5YB+4xy5JvZoLdvuxS1K/9oLd\n7o6S1KvBYLcfuyT1mRrsSV6b5PYkdyb5WpLTJoy7Kcl9Sa6bf5mb7O4oSf1mWbF/GLihqq4Engbe\nNT4gyVXAvqo6DJyf5IL5lrnlubAfuyT12T9tQFV9ccs/l4BnOoatALeO7t8JXAb8ZOuAJEeAIwDn\nnnvuNkpd/z2u2CWpz8x77EkOA2dV1f0d3z4DeHJ0/1ng4PiAqjpaVctVtby0tLStYkd12CtGknpM\nXbEDJDkb+DzwhxOGvACcPrp/Jjv4oaz92CWp3ywfnp4GfBX4ZFU9PmHYMYbbLwCHgMfmUl1nPXZ3\nlKQ+s6zYPwpcDFyb5FrgbuBAVW09+uU24N4krwfeDVw690pHBl7MWpJ6zfLh6Y3AjVPGHE+yAlwB\nfK6qnp9PeScLfngqSX1m2mOfRVU9x+aRMTsmrtglqVdzZ54OPzyVJE3SXLC7Ypekfs0Fuy0FJKlf\nc8FuSwFJ6tdesLtil6ReBrskLZjmgn14MWuTXZImaS7YbSkgSf2aC/aBV1CSpF7NBTu4YpekPs0F\n+3CPXZI0SXPBPjwqxmiXpEmaC/bhHvtuVyFJe1dzwR7wzFNJ6tFesLtil6ReDQa7K3ZJ6tNcsNuP\nXZL6NRfsdneUpH7NBftgYBMwSerTXLC7Ypekfu0Fe/DMU0nq0WCwe7ijJPVpLtgHthSQpF4zBXuS\ng0nu7fn+G5I8keQ7o6+l+ZU49lzY3VGS+uyfNiDJWcDNwBk9w94CfKaqbpxXYZN4BSVJ6jfLiv1F\n4GrgeM+YS4GPJflhks/OpbJJAidO7OgzSFLTpgZ7VR2vquenDLsdWAHeDBxOctH4gCRHkqwmWV1b\nW9tWseAVlCRpmnl9ePq9qvp5Vb0I/Ai4YHxAVR2tquWqWl5a2v4WfPBwR0nqM69gvyPJ65K8GrgS\neGROv/ckg3iCkiT1mfrh6bgk7wQurKovbHn4U8DdwC+BL1XVj+dU30lsKSBJ/WYO9qpaGd3eBdw1\n9r27gTfOtbKJ4uGOktSjyROU3GWXpMmaC/bhhTZ2uwpJ2ruaC3YPd5Skfs0Fuy0FJKlfe8Huil2S\nejUY7B7uKEl9mgv2YRMwSdIkzQX7cI/daJekSZoL9sHAKyhJUp/mgt0VuyT1ay/Y3WOXpF4NBrvX\nPJWkPs0F+8DDHSWpV3PBHuzHLkl9mgv2QeztKEl9mgt24uGOktSnuWAf9mP3A1RJmqS5YA/DZLfD\noyR1ay7YXbFLUr/mgj2jYHfFLkndGgz2YbKXx8ZIUqcGg314606MJHVrLtgH6yt2g12SOjUX7KMF\nu2efStIEzQX7+ordYJekbjMFe5KDSe7t+f6BJN9I8t0k18yvvK7nGt4a65LUbWqwJzkLuBk4o2fY\nx4FjVfVW4ANJXjOn+rrqAaBO7NQzSFLbZlmxvwhcDRzvGbMC3Dq6fw+w/PLKmmx9j93DHSWp29Rg\nr6rjVfX8lGFnAE+O7j8LHBwfkORIktUkq2tray+90pGBJyhJUq95fXj6AnD66P6ZXb+3qo5W1XJV\nLS8tLW37iQaD9cMdTXZJ6jKvYD8GXDa6fwh4bE6/9ySbhzvu1DNIUtv2v9QfSPJO4MKq+sKWh28G\nvpnkbcCFwPfnVF/X8wPusUvSJDOv2KtqZXR711ioU1WPA1cA3wUur6oX51nkVrYUkKR+L3nFPklV\n/SebR8bsGFsKSFK/5s48taWAJPVrLtg3Vuy7XIck7VXNBfv6kv2Eh8VIUqfmgn19xS5J6tZcsLvH\nLkn9mgv2wahic12SujUX7MF+7JLUp71gtx+7JPVqMNhtAiZJfZoL9oEtBSSpV3PBvrnHvsuFSNIe\n1Vywb6zY3WWXpE7NBXs2zjzd3Tokaa9qMNjtxy5JfdoL9tGtH55KUrfmgt1+7JLUr7lg39hjN9kl\nqVNzwb6+YjfYJalbc8GOLQUkqVdzwT6wpYAk9Wou2D0qRpL6NRfsm3vsu1yIJO1RzQX7Rttel+yS\n1KnZYHfFLkndZgr2JDcluS/JdRO+vz/JT5N8Z/T1pvmWuWlgSwFJ6jU12JNcBeyrqsPA+Uku6Bh2\nEfCVqloZfT0870I36hnduhMjSd1mWbGvALeO7t8JXNYx5lLgfUl+MFrd759TfScZDGwpIEl9Zgn2\nM4AnR/efBQ52jHkAuLyqLgEOAO8ZH5DkSJLVJKtra2vbrXdjxe6Zp5LUbZZgfwE4fXT/zAk/81BV\nPTW6vwqctF1TVUerarmqlpeWlrZVLGxt2ytJ6jJLsB9jc/vlEPBYx5hbkhxKsg94P/DgfMo7mU3A\nJKnfLMF+G/CRJDcAHwT+Lcn1Y2M+DdwC/CtwX1V9e75lbhrEZjGS1Gfqh5xVdTzJCnAF8Lmqepqx\nFXlVPcLwyJgd5x67JPWb6eiVqnqOzSNjdpUX2pCkfg2feWqyS1KXZoPdWJekbu0FO/Zjl6Q+zQX7\nYFSxuS5J3ZoL9vUVu90dJalbc8E+2NhjN9klqUtzwW4/dknq12Cw++GpJPVpL9hHt+a6JHVrLti9\ngpIk9Wsu2Df22E/sbh2StFc1F+wD+7FLUq/mgn2dvWIkqVtzwb55zVODXZK6NBfsHhUjSf2aC/b1\nPXZPUJKkbs0Fe2wpIEm9mg12V+yS1K29YF/fZXeTXZI6NRfsA1fsktSrwWD3cEdJ6tNcsLvHLkn9\nGgx2WwpIUp8Gg31461aMJHWbKdiT3JTkviTXvZwx87C5x76TzyJJ7Zoa7EmuAvZV1WHg/CQXbGfM\nvKy3FLAJmCR12z/DmBXg1tH9O4HLgJ9sY8xcrK/Y//beR/mHY0/sxFNI0o5Z+Z0lrn3vhTv6HLME\n+xnAk6P7zwIXb2dMkiPAEYBzzz33JRe67lUHBvzp23+bnz77i23/DknaLQd/41U7/hyzBPsLwOmj\n+2fSvX0zdUxVHQWOAiwvL297HyUJn3j3G7f745K08Gb58PQYw60VgEPAY9scI0l6BcyyYr8NuDfJ\n64F3Ax9Kcn1VXdcz5tL5lypJmsXUFXtVHWf44ej9wDuq6sGxUO8a8/z8S5UkzWKWFTtV9RybR71s\ne4wkaec1d+apJKmfwS5JC8Zgl6QFY7BL0oLJbnRJTLIGPP4yfsU5wM/mVM5edqrME06duZ4q84RT\nZ66v5Dx/q6qWpg3alWB/uZKsVtXybtex006VecKpM9dTZZ5w6sx1L87TrRhJWjAGuyQtmFaD/ehu\nF/AKOVXmCafOXE+VecKpM9c9N88m99glSZO1umKXJE1gsEvSgmkq2F+pC2bvhiT7k/w0yXdGX29K\n8qkkDyT5m92ub16SHExy7+j+gSTfSPLdJNdMeqxFY/N8Q5Intry2S6PHm/97TvLaJLcnuTPJ15Kc\n1jWv1uc6YZ6/9n4djdsT79lmgv2VvGD2LrkI+EpVrVTVCnAaw4uXXAI8k+Ty3SxuHpKcBdzM8FKK\nAB8HjlXVW4EPJHnNhMea0jHPtwCfWX9tq2ptgf6ePwzcUFVXAk8DH2JsXgsy1/F5foIt79eqejjJ\n77JH3rPNBDvdF8xeJJcC70vygyQ3Ab8P/GMNP92+A3jbrlY3Hy8CVwPHR/9eYfM1vQdYnvBYa8bn\neSnwsSQ/TPLZ0WMrLMDfc1V9saq+NfrnEvBHnDyvlY7HmtIxz1+x5f2aZD/wdvbIe7alYB+/YPbB\nXaxlJzwAXF5VlwAHGF5DdqHmW1XHxy7C0vWaNv86d8zzdobh9mbgcJKLWIB5bpXkMHAW8B8s4Gu6\nbss8v8Wvv1/fwx6aZ0vBPstFtVv2UFU9Nbq/yuLPF7rnuIjz/l5V/byqXgR+BFzAAs0zydnA54Fr\nWODXdGye4+/XPfWatvQ/8KJfMPuWJIeS7APez/C//os8X+h+TRfxdb4jyeuSvBq4EniEBZlnktOA\nrwKfrKrHWdDXtGOe4+/XB9lD85zp0nh7xKJfMPvTwJeBAF8Hrmc4378C3jX6WjQ3A99M8jbgQuD7\nDP+v7PhjrfsUcDfwS+BLVfXjJE+xGH/PHwUuBq5Nci3wd8BHxuZVtD/X8XneDdzC6P1aVd9OMgD+\nci+8Z5s683R0tMEVwD1V9fRu17PTkpwOvBf4YVU9utv17ITRm/0y4I71femuxxbRov49d81rUec6\nbq+8Z5sKdknSdC3tsUuSZmCwS9KCMdglacEY7JK0YAx2SVow/w+7knPn85JjxAAAAABJRU5ErkJg\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x13c68b70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(261,)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n9RCDVfmyAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1418e160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nAEBS/w9Xr3Aw4OYZIgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x131ee240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#验证c输出的count_zcm,score_zcm\n",
    "filename = \"X:/3_2 运动算法资料/4_data/Text2018-02-06/FC-00-00-00-00-4F/43285/43285_count.txt\"\n",
    "fid = open(filename, 'r')\n",
    "\n",
    "df = pd.read_csv(fid,encoding = 'utf-8',header=None)#因为路径含中文，故不能直接读\n",
    "count_zcm = np.array(df)\n",
    "count_zcm = count_zcm.reshape(len(count_zcm))\n",
    "fid.close()\n",
    "plt.plot(count_zcm)\n",
    "plt.show()\n",
    "\n",
    "print(shape(count_zcm))\n",
    "\n",
    "\n",
    "filename = \"X:/3_2 运动算法资料/4_data/Text2018-02-06/FC-00-00-00-00-4F/43285/43285_zcm.txt\"\n",
    "fid = open(filename, 'r')\n",
    "\n",
    "df = pd.read_csv(fid,encoding = 'utf-8',header=None)#因为路径含中文，故不能直接读\n",
    "score_zcm = np.array(df)\n",
    "score_zcm = score_zcm.reshape(len(score_zcm))\n",
    "fid.close()\n",
    "plt.plot(score_zcm)\n",
    "plt.show()\n",
    "\n",
    "\n",
    "plt.plot(axis_m, D_zcm)\n",
    "plt._show()\n",
    "shape(D_zcm)\n",
    "\n",
    "D_zcm = score_zcm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 360,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x13189978>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nSBAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12039a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "dict_values([0.0, 0.0, 0.0, 0.0, 0.01125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])"
      ]
     },
     "execution_count": 360,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "th_sleep = 0.8 #将sleep/wake阈值设置为20\n",
    "th_deep = 0.0001 #将deep/light-sleep阈值设置为10\n",
    "dic_D = {t: D_zcm[t] for t in range(t)}\n",
    "\n",
    "dic_score = dic_D.copy() #字典浅复制\n",
    "for i in range(4): #Webster's算法未计算的前4分钟状态同第5分钟\n",
    "    dic_score[i] = dic_score[4]\n",
    "for i in range(t-2,t): # 最后2分钟状态同前一分钟\n",
    "    dic_score[i] = dic_score[t-3]\n",
    "\n",
    "\n",
    "for key in dic_score.keys():\n",
    "    if  dic_score[key] > th_sleep:\n",
    "        dic_score[key] = 2\n",
    "    elif dic_score[key] > th_deep:\n",
    "        dic_score[key] = 1\n",
    "    else:\n",
    "        dic_score[key] = 0\n",
    "    # print(dic_score[key])\n",
    "    \n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_D.values())\n",
    "plt.show()\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_score.values())\n",
    "plt.show()\n",
    "dic_D.values()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 361,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1fe926a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEFCAYAAAD36MwKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAF1RJREFUeJzt3X20ZFV95vHvU7woQhSQnja+NC0J\nGl8GxNU4IWLm+tIYJImRzIhjokExONFoXNEVNZIZjLiyYqLG0eDYCUZjXM7AjGJM0GBUBpIBXd1L\nUYmviaCira0gLy6zHOU3f5xTt6pu171Vfa3uunX6+1nrrj517q5zdu1b/dx9d52zd6oKSVJ39OZd\nAUnSbBnsktQxBrskdYzBLkkdY7BLUscY7JLUMQb7BpXkwiQXzrseiybJTyX51AyOc+8k1yT5RpLL\nZ1G3Kc55WpLvJtndfr12P51nLtc4J7kqydI8zn2wOXTeFZBmJclPAu8BjpjB4X4V+HxVPSbJvYfO\n8UvAjVX1iRmcY6WTgYuq6g/2w7F1ELHHri55HnDBjI51DPAVgKr69tD+XwIeMaNzrHQKsD9+Yegg\nY7DPUZJXJvlakq8ned4U5Z+U5LPt8MCFa+1Pcm77p++u9hznT3H8tyX5jSRvTfKFof2PSvLxJN9M\nsiNJ2v1PTvLP7f63Jum1+7cn+Uxbn9cPHeeMtp5fSfK76z3vGl4M7Jr0OoeO/+gkN7Ttf1mSQ5Ns\nSrIbeAnwknZI5FlJHtnuPwd4Q7v/Ce1xNif5myR7knwoyb9p9y+1P4NnJPlSkjMmVOmU9th7klyZ\nZPOE+h+V5INt/d+R5BNJTkpyXJK/buv4t/36TDjOO9qf184kD5pQfmuSG5M8Mck/Jfn1dv/bkpw7\nVG7ikE+S303y5SQ3JfmFdl+v/Xl/vf3eUyYdRytUlV9z+AKOBb5P0zO8N/C/V3z/QuDCocebgH8G\ntgA/BtxAEwSr7T8X+E67//7AHmDLhDq9DfgycB5wbLvvcOALNMMEdwc+CDyl/d4ngZ8HDgHeAvwE\ncBzwdeDhwD2AjwNntK9xN3AScC/geuBJ+3pe4KXtcYa/rhp6DVtphkqm+RlcMlSH9/e3x7X/ijY6\nd8W+/wk8l6aj9ErgDe3+pbZ+lwLHA4dNqM9bgAe2x/lvwJsmlP8N4F3AYcBNwE+2+/8KePXQ67h0\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x13bfba20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "From 00:18 enter sleep monitoring program...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x22f4ae80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  因刚开始入睡时，在PSG检测到进入睡眠状态1时，人体已经停止动作静止；故设置此重新评分法则：\n",
    "# (a) After at least 4 minutes scored as wake, the next 1 minute scored as sleep is rescored wake;\n",
    "# (b) after at least 10 minutes scored as wake, the next 3 minutes scored as sleep are rescored wake;\n",
    "# (c) after at least 15 minutes scored as wake, the next 4 minutes scored as sleep are rescored wake;\n",
    "# (d) 6 minutes or less scored as sleep surrounded by at least 10 minutes (before and after) scored as wake are rescored wake;\n",
    "# (e) 10 minutes or less scored as sleep surrounded by at least 20 minutes (before and after) scored as wake are rescored wake.       \n",
    "dic_rescore = dic_score.copy()\n",
    "for key in dic_rescore.keys(): # rule (a)\n",
    "    if (key > 3 and all([dic_rescore[key-i] == 2 for i in range(1,5)])and dic_rescore[key] < 2 ):\n",
    "        dic_rescore[key] = 2\n",
    "        break\n",
    "\n",
    "#         i = 1\n",
    "#         while(i<5):\n",
    "#             if dic_rescore[key-i] == 2:\n",
    "#                 i+=1\n",
    "#             else:\n",
    "#                 break\n",
    "#         if(i == 4):\n",
    "#              dic_rescore[key] = 2\n",
    "# plt.plot(array(range(t-6))/60, dic_rescore.values())\n",
    "# plt.show()    \n",
    "for key in dic_rescore.keys():# rule (b)\n",
    "    if (key > 9 and key < len(dic_rescore)-3 and all([dic_rescore[key - i] == 2 for i in range(1, 11)])and dic_rescore[key + 1] < 2):\n",
    "        for i in range(1, 4):\n",
    "            dic_score[key+i] = 2\n",
    "        break\n",
    "                \n",
    "for key in dic_rescore.keys():# rule (c)\n",
    "    if (key > 14 and key < len(dic_rescore)-4 and all([dic_rescore[key - i] == 2 for i in range(1, 16)])and dic_rescore[key + 1] < 2):\n",
    "        for i in range(1, 5):\n",
    "            dic_score[key+i] = 2\n",
    "        break\n",
    "                \n",
    "for key in dic_rescore.keys():# rule (d)\n",
    "    if (key > 9 and key < len(dic_rescore)-15 and all([dic_rescore[key-i] == 2 for i in range(1,11)])and dic_rescore[key + 1] < 2):\n",
    "        i=2\n",
    "        while(i<=6):\n",
    "            if dic_rescore[key+i] < 2:\n",
    "                i+=1\n",
    "            else:\n",
    "                break\n",
    "        if all([dic_rescore[key + i + ii] == 2 for ii in range(1,11)]):\n",
    "            for ii in range(1,i):\n",
    "                dic_rescore[key+i-ii] = 2\n",
    "                \n",
    "for key in dic_rescore.keys():# rule (e)\n",
    "    if (key > 19 and key < len(dic_rescore)-29 and all([dic_rescore[key-i] == 2 for i in range(1,21)])and dic_rescore[key + 1] < 2):\n",
    "        i=2\n",
    "        while(i<=10):\n",
    "            if dic_rescore[key+i] < 2:\n",
    "                i+=1\n",
    "            else:\n",
    "                break\n",
    "        if all([dic_rescore[key + i + ii] == 2 for ii in range(1,21)]):\n",
    "            for ii in range(1,i):\n",
    "                dic_rescore[key+i-ii] = 2\n",
    "# plt.subplot(211)\n",
    "plt.title(\"sleep score by ZCM\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_score.values())\n",
    "plt.show()\n",
    "                \n",
    "                \n",
    "plt.title(\"sleep rescore-1 after 5 gole rules\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_rescore.values())\n",
    "plt.show()\n",
    "\n",
    "# print(list(dic_rescore.values()).count(1))\n",
    "# print(dic_rescore.values())\n",
    "# key = 9\n",
    "# if ( key < len(dic_rescore)-60 and all([dic_rescore[key + i] < 2 for i in range(1,61)])):\n",
    "#     print(\"yes\")\n",
    "\n",
    "#判断是否进入睡眠程序:检测到连续30/60分钟睡眠才进入睡眠监测程序——待模块化！！！\n",
    "\n",
    "monitor = 0\n",
    "\n",
    "for key in dic_rescore.keys():\n",
    "    if ( key < len(dic_rescore)-60 and all([dic_rescore[key + i] < 2 for i in range(1,61)])):\n",
    "        for tt in range(1,key):\n",
    "            dic_rescore[key - tt] == 2 \n",
    "        print(\"From\", m2t(m_start+key), \"enter sleep monitoring program...\")\n",
    "        monitor = 1\n",
    "        break\n",
    "if(monitor == 0):\n",
    "    dic_rescore = {t: 2 for t in range(t)}\n",
    "\n",
    "# 深睡浅睡规则待完善 ！！！\n",
    "\n",
    "\n",
    "# plt.subplot(212)\n",
    "plt.title(\"sleep rescore-2 after sleep monitoring program\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_rescore.values())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 362,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_values([1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 362,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dic_score.values()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 363,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12172048>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Time to fall sleep: 00:18\n",
      "Time of sleep: 4.35 hours\n",
      "Time of deep sleep: 4.27 hours\n",
      "Time of light sleep: 0.08 hours\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEFCAYAAAD36MwKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAGTZJREFUeJzt3Xu0pFV55/HvU9zERrmEptFAA20Q\nA4aL0xgxmHU0XCQkaogBZ7x1xOkkEq9xViCigwaXCYmYDAZjRxSX43KAUXE0oHiBAR0u0x0Eg2Jk\nkgZFWpo7mLCI9DN/7LdOXbrqVJ3T1V3nffv7WatXV71n1/vu2uet39m16629IzORJDVHa9oVkCRN\nlsEuSQ1jsEtSwxjsktQwBrskNYzBLkkNs10He0ScExHnTLsedRIR+0TEJyLif0fEO7ZwX78QETdH\nxL0R8d8mVUf1iojTIuKv67p/zd92HexakE8DNwK/D7w+Ik7cgn2dAXwuM/cB3tveGBGrIuLALank\nJEXEKyLiyGnXY6Ey85LMfGv/9oh4W0TssbX2r+kx2DW2iHgKcFVm/m1mfg/4GvDsLdjlnsAPATLz\n/q7tq4ADt2C/k/YKoLbBPoe3AVsc7FqEMrPR/yg9wR8D9wBv6vvZOcA5fdt+Hbgd+En3zwZtpwTQ\nNcC66hirx6jPxcAfAB8HftC1/fnAzcC9wBogqu0vB/5ftf3jQKvafjzwvao+H+razwlVPX8I/MlC\njzvG8zgC+D7wrBHlXgHcUbXPBdW25wEbgH8DHq5uH1c91w3AE8AD1e1DqsccDFwHbAQ+Czy163dw\nMfDO6nd8yIj6/DxwE3B31Rb/BOwOLAO+VO3/68A+w+o5Yv/rgQOr2zPANdXtBP6u2sdngSVz7GMV\n8H+q9v0UcC3wHWDHqk7/ULXnXwE7UP4IrgfeUe3/VmDfvv1d3HX/D6tyT1bPd0NXe87r/Bmy/6H1\nqdrkn6tjfBL48hztMAPcQnmN3QO8t++1+z7gPOB+YJeuc6unfeY67hz7+RXgtuq4l1Vtfw7wVeBO\n4MPV7+Qr0864gW037Qps1ScHe1FCYk/g54DP9v38HHrDeyklRJcDT6t+sUfNsX0V8FC1fb/qRbJ8\nRJ0uBu4CTgf2qrbtDPyAEpZPqU6e36p+divwG5QX8EeBZwF7Vyfcc4GnUoL5hOo5bgAOp4TVLcCv\nz/e4wB9X++n+d03Xc3gRcB9wCSP+EABXVm21Y/VCOLSvLVYNeMw1wEzfthuBk6r9fAJ4e7V9FeVF\n/DfAM6heyHPU58+BD1Tt8xBVwFbP5fco72LfC/z1sHpWz7+/fTZQzrf1DA/2t1b7vww4c446rqKE\n+pHV4w6g/OE9gBJOJwC7AF8B3kQJ0ico4dSi/IF6e9/+Lh5wnNm6Vvfndf4M2/9c9al+jydW/745\n4nc1A/yMEta7U16DL+h67d4NvAtYWm3baVD7zHXcQfuptl/U9dyvpHTszqG8S/0Nyh/6ZcCmaefc\noH870mwPU14gHwK+DLx+RPkX0OnRQTk5DqOE9qDtAN/IzLsAIuJGykl414jjXJGZF3XdP4TyYvhK\ndX9n4FDg88A3Kb3R/YA/zcwfRcRvAt/OzH+syh9VHb+9/dbq/sWUE/KK+Rw3M99PCcCBMvO6iNiP\n8oJ9PeVFP8wbgN8B/oTS694H+O4c5TcTEU8DjqYEOpRwf6KryEPAmzNz0xi7exzYjRICO3VtP44S\nJO+l/BFdN2wHmXkdsO+Quvbc7fvxJzJzU0RcArxmRD1vojyvH2XmnRHxr8DTgScy86rqWH9LCdor\nKH8Azqn2v44ShPP1QuZ3/sxlWH0ep5xnMN5Q8K2Z+Q9Vfa6kvEZvqH72nepcbXsOg9vnwhHH7d8P\nwB8Bp0bEpyi990uq7dcDj1X1+kn0/cIXi0YHe2Y+GRFHU160JwN/GhGHZeYTQx4SwNWZeRJARCwB\nNlGGPQZtP43eF2+r2j7KDX33A7gjM3+x2v9TKOFCZr4pIl4I/BqwLiJeslmlI46h9GygvKDout19\nf+zjDhIRuwNHZ+bXMvPxiPgSnT9wg8rvAawF/gJ4P+Wdz0IE8Hhm7lvtd2fKO4y2m8YMdShvxd8D\nnAr8l8z8adcxDq9erDtQ3pltqZ/vu98+V8Y5T57s+79t2O93Q2b+64Ay8zWf82cuw+pzG+Ud046U\n0B1lrtfXoPoMq/9cx+3ZT0S0qm2XUN4Jdu9z2O9lUWn0h6cR8WzKeOnXKcML+1Lebg5zA3BURBxS\nhcdXKW/rhm0H+LWIOCAi9qf0Kof29OZwO/DUiHhRdVJ9Cnhj9Rxuo7xVfD9lTP1wSq/hyIg4NCJ2\nofSu96OMyx4ZEc+NiKdTetNXLuS4Q/wM+ExEHFG1w8vovIsZ5Beqx1wI7Ar8h7kaoct9lGEHIuLn\nMvMR4B8j4tXVzz9A11U08/Sfgddk5v6ZeWHX9q/Ree5vovPuoL8+e4/Y/yPA/hGxE+XKoW5vqNr5\nNMrvar4eB3aJiOOq9v89Or/fhYT5fcABUezF/M+fuWxWn+oP5suA52fmczLzW2Ps5/CIWFl1Ek6i\nnPvD3M6A9lnAcfcCDgI+SHnXtFlnarFrdLBn5j9RPnD7F8qHZB/OzHvmKH8v5cX9vyjjj9dn5heG\nba8edhNlzPRG4KzMvHsB9XyC8mK/gBLijwMfqX78PsqY8wbgUeCLmXkf8LvA5yhjijdm5uezXFny\neuB/Unool2XmFQwx4riDyv+02v9nKW16fWZeNsdTu6X6dw+ll/wdxruK5s+AsyLifjq9q9cCfxAR\n91Decr9vjP0McgVwdUTcHRHrIuKV1fa3AL9S7f9UyhUjbX8DvDwi7qOMs87lz4GPAV8E/r7vZyso\nnwck5Y/dfP078ErKO6D1lHP6owvYT9t7KMNo9wEnzvf8ma/MfBL4NnBXRNwVEd+IiF8a8bBbKOfD\n7ZShrP87x/4Hts98j1u9vj5Z7eMT1WO35Oqvba595YUWICJWUT7kWzXlqmgMVW/5u8AvZ+bDEfEC\n4COZedQ2OHZm5qIcj91WIuIIygeqL6UMsbwTeEZmvn1I+RnKOP3MtjxuEzR6jF3qVn2Q9yXKsE4L\neBB495SrtT1ZT/nQ+8eUMer1zD30V/fjTo09dklqmEaPsUvS9shgl6SGmcoY+957750HHnjgNA4t\nSbW1bt26+zJz5PdBphLsBx54IGvXrp3GoSWptiLiznHKORQjSQ1jsEtSwxjsktQwBrskNYzBLkkN\nY7BLUsOMFewRsSwirpvj5ztFxBcj4lsR8YbJVU+SNF8jr2OPiD0pU1gumaPYm4F1mXlORFwREZdl\n5qOTqmTb9zc8yt/f+uPNtj/vgD2ZOWSfSR9OkmppnC8oPUmZs/sLc5SZAc6sbl8LrASu7i4QEauB\n1QDLly+fbz0BuOPex7jg6jt6tmXCiqVLDHZJqowM9mr1mv61HPstoSzUAGV1+WUD9rMGWAOwcuXK\nBU0pefLhz+Dkw0/u2fbW/3Ez3/7hQwvZnSQ10qQ+PH2MsvQZlIWCt9mHsq0InHlYkjomFcDrgGOr\n20dQJrLfJgLYZLJL0qx5TwIWES8BDs3MD3dt/iRwRUS8CDiUsv7nNhH22CWpx9g99va6g5n5jb5Q\nJzPvBI4HvgUcVy0eu01EgKtASVLHxKbtzcwfA5dOan/jakVZ8l2SVNT+m6dBOMYuSV1qH+ytFo6x\nS1KX2gc7BJsMdkmaVftgbwU4yi5JHbUP9gjssUtSl9oHe/nmqckuSW21D/byzdNp10KSFo/6B7s9\ndknq0YBg93JHSepW+2BvRXhNjCR1qX2wO7ujJPWqfbC3Ws7uKEndah/s9tglqVf9g90xdknq0YBg\ndz52SepW+2BvebmjJPWofbA7H7sk9ap9sLuCkiT1qn2w42LWktSj9sFe5mP3A1RJaqt9sAcl2Z3h\nUZKK2gd7u8fuB6iSVNQ+2GN2KGa69ZCkxaIBwd4eijHZJQkaEezTroEkLS61D/aWPXZJ6lH7YG93\n2M11SSpqH+z22CWpV+2DffaqmOlWQ5IWjQYEe0n23DTlikjSIlH7YJ+dUsA+uyQBYwZ7RFwUEddH\nxNlDfr5nRFwREWsj4qOTreKIulX/O6WAJBUjgz0iTgF2yMxjgBURcfCAYq8FPp2ZK4GnRcTKCddz\nqFbVZXcSMEkqxumxzwCXVrevAo4dUOZ+4LkRsQewP/DD/gIRsbrq0a/duHHjAqu7OXvsktRrnGBf\nAtxd3X4AWDagzDeBA4C3AN+ryvXIzDWZuTIzVy5dunSB1d3c7IenjrFLEjBesD8G7Frd3m3IY/4r\n8PuZ+T7gduB3J1O90ZwETJJ6jRPs6+gMvxwBrB9QZk/glyJiB+CX2YaXlbe/oGSwS1IxTrBfDrw2\nIs4HTgVui4hz+8p8AFgDPAzsBXxmorWcQ2eM3WSXJIAdRxXIzEciYgY4HjgvMzcAt/SVuQk4bKvU\ncITZHvs0Di5Ji9DIYAfIzAfpXBmzuLRXUPKyGEkCGvHNUydkl6RutQ92x9glqVftg71VPQNzXZKK\n2gd74HzsktSt/sHufOyS1KMBwe4kYJLUrfbB3nJKAUnqUftg74yxT7kikrRI1D7YXUFJknrVPthj\n9pun062HJC0WDQh252OXpG71D/bqfz88laSi9sHufOyS1Kv2wT47xm6ySxLQgGB3PnZJ6lX7YMce\nuyT1qH2wO8YuSb1qH+ydq2JMdkmCBgS7Y+yS1Kv2wR6ueSpJPZoT7Oa6JAFNCHacUkCSutU+2J2P\nXZJ61T7Yw8sdJalH7YO95ReUJKlH7YPdxawlqVcDgr29NJ7RLknQhGBv3zDXJQloQLC37LFLUo/G\nBLu5LknFWMEeERdFxPURcfaIchdGxG9OpmrjcaENSeo1Mtgj4hRgh8w8BlgREQcPKfciYN/M/OKE\n6ziifuV/Y12SinF67DPApdXtq4Bj+wtExE7A3wHrI+Llg3YSEasjYm1ErN24ceMCqztgv+0pBeyx\nSxIwXrAvAe6ubj8ALBtQ5nXAd4HzgOdHxJv7C2TmmsxcmZkrly5dutD6bqbVau9/YruUpFobJ9gf\nA3atbu825DFHAWsycwPw34EXT6Z6o7V77M7uKEnFOMG+js7wyxHA+gFl7gBWVLdXAnducc3GNDsJ\nmKPskgTAjmOUuRy4LiKeCZwEvCoizs3M7itkLgI+HhGvAnYCXjn5qg7mfOyS1GtksGfmIxExAxwP\nnFcNt9zSV+ZR4He2Sg1H6MzuaLJLEozXYyczH6RzZcyi0lnMeqrVkKRFoznfPHWMXZKABgR7ZzHr\n6dZDkhaL2gd7p8cuSYIGBHubc8VIUlH7YG+1nCxGkrrVPtjbV8XYY5ekovbB7hi7JPWqfbA7H7sk\n9WpMsJvrklTUP9idj12SetQ+2L0oRpJ61T7Y25OAbXJ6R0kCGhDs9tglqVftg90VlCSpV/2DfXbN\nU5NdkqAJwV79b65LUlH7YHc+dknqVftgd81TSepV+2Bv99idUkCSitoHe5u5LklF7YN9dozdZJck\noAHB7iRgktSr9sHeGWOfckUkaZGofbDPXsfu5Y6SBDQh2L3cUZJ6NCDYHWSXpG61D3YoMzzaY5ek\noiHBHo6xS1KlEcEe9tglaVZDgj0cYpekSjOCHb95KkltYwV7RFwUEddHxNkjyi2LiJsnU7XxlTF2\nSRKMEewRcQqwQ2YeA6yIiIPnKP6XwK6Tqty4IlzMWpLaxumxzwCXVrevAo4dVCgiXgL8FNgw5Oer\nI2JtRKzduHHjAqo6nD12SeoYJ9iXAHdXtx8AlvUXiIidgXcDZw7bSWauycyVmbly6dKlC6nrUIHz\nsUtS2zjB/hid4ZXdhjzmTODCzHxoUhWbjwi/eCpJbeME+zo6wy9HAOsHlDkOOCMirgGOjIiPTaR2\nYyqXO5rskgSw4xhlLgeui4hnAicBr4qIczNz9gqZzPzV9u2IuCYz3zj5qg7XChxjl6TKyGDPzEci\nYgY4HjgvMzcAt8xRfmZitRtTRDjGLkmVcXrsZOaDdK6MWXRajrFL0qxGfPMUwrliJKnSiGBvBTjK\nLklFI4K9fPN02rWQpMWhEcHufOyS1NGIYC/fPJ12LSRpcWhGsDsfuyTNakiwOx+7JLU1Itid3VGS\nOhoR7GXNU6NdkqAhwd5yjF2SZjUi2J2PXZI6mhHszu4oSbMaEuzOxy5JbY0Idmd3lKSORgR74Hzs\nktTWjGAPpxSQpLaGBLuXO0pSWyOCveWUApI0qxHB7uWOktTRiGBvuZi1JM1qRLAHXu4oSW3NCHZ7\n7JI0qyHBPu0aSNLi0Yhgd4xdkjoaEeyOsUtSRyOC3R67JHU0ItjDScAkaZbBLkkN04hgL4tZm+yS\nBA0Jdmd3lKSOsYI9Ii6KiOsj4uwhP989Iq6MiKsi4vMRsfNkqzm3lisoSdKskcEeEacAO2TmMcCK\niDh4QLFXA+dn5gnABuClk63maPbYJanYcYwyM8Cl1e2rgGOBH3QXyMwLu+4uBe7t30lErAZWAyxf\nvnwBVR2ujLFLkmC8oZglwN3V7QeAZcMKRsQxwJ6ZeUP/zzJzTWauzMyVS5cuXVBlhx/X+dglqW2c\nHvtjwK7V7d0Y8scgIvYCLgB+ezJVG1/LFZQkadY4PfZ1lOEXgCOA9f0Fqg9LLwPOysw7J1a7MQX4\nzVNJqowT7JcDr42I84FTgdsi4ty+MqcDzwPeFRHXRMRpE67nnFzzVJI6Rg7FZOYjETEDHA+cl5kb\ngFv6ynwE+MhWqeEYynXsJrskwXhj7GTmg3SujFl0Ws7HLkmzmvHNU5zdUZLaGhHsrZaTgElSWyOC\n3R67JHU0I9gDv3kqSZWGBLuXO0pSWyOCveWUApI0qxHBXr55Ou1aSNLi0IhgdwUlSepoRLATsGnT\ntCshSYtDI4K9FX71VJLaGhHszu4oSR2NCHbnY5ekjkYEu7M7SlJHQ4LdNU8lqa0hwe4XlCSprRHB\n3gq/oCRJbY0I9iDssUtSpRHBbo9dkjoaEexldkeTXZKgMcHuCkqS1NaMYMfLHSWprRHB3vILSpI0\nqxHB7lCMJHU0Ithb4WLWktTWiGB3SgFJ6mhIsDulgCS1NSLYW46xS9KsRgR74Bi7JLU1IthbgWPs\nklRpRLDjCkqSNKsRwd6q1rL2A1RJGjPYI+KiiLg+Is7ekjJbS1CS3RkeJQl2HFUgIk4BdsjMYyLi\n4xFxcGb+YL5ltqZ2j/3Ev7q2inhJWpxOO3p/3viiFVv1GCODHZgBLq1uXwUcC/SH9sgyEbEaWA2w\nfPnyBVV2mOMPW8b3f/KoV8ZIWvT23m2XrX6McYJ9CXB3dfsB4HkLKZOZa4A1ACtXrpxoAj9n36fz\n4f80qFqStP0ZZ4z9MWDX6vZuQx4zThlJ0jYwTgCvowytABwBrF9gGUnSNjDOUMzlwHUR8UzgJOBV\nEXFuZp49R5kXTL6qkqRxjOyxZ+YjlA9HbwBenJm39IX6oDIPT76qkqRxjNNjJzMfpHPVy4LLSJK2\nPj/klKSGMdglqWEMdklqmJjGxFkRsRG4c4EP3xu4b4LVaRLbZjDbZTDbZbDF3C4HZObSUYWmEuxb\nIiLWZubKaddjMbJtBrNdBrNdBmtCuzgUI0kNY7BLUsPUMdjXTLsCi5htM5jtMpjtMljt26V2Y+yS\npLnVsccuSZqDwS41WETsFRHHR8Te066Ltp1FEez966WOu35qRCyLiOu67q+IiK9HxLcj4t1bu97b\nwoC26XnOczzuFyPiC133j46IayPi1og4fWvWeVvobpeI2D0iroyIqyLi8xGx8xyPa/Q509cuewJf\nAp4PXB0RQ69/3p7apWvbsoi4ecTjatkuUw/27vVSgRUR8cd99w8e8rg9gU9SVm9q+0PgPZl5JHDi\nXCdyHQxom6PZ/DkPetyzgL8Adu/afBbwH4GjgHdunRpvG/3tAqwCzs/ME4ANwEuHPK7R58yAdjkc\neEdmvh/4CoNXP9vu2qUrU/6SzgJBgx5X23aZerCz+XqpZ7P5+qlExK4R8emuxz0JnAY80rXtfuDw\niFgG7AI8tPWqvU3M0NsWL2Tz50xEHBQRH+za9Cjw2337up+yCMpBLN5v1Y1rht52eSQzv1rdXwrc\nC9vlOTNDb7usyMwbIuJXKb3268F2AY6NiJcAP6V0BIBmtctY0/ZuZf3rpT6VAeunZua/Aa9uP6ia\nA56I6N7Xl4G3APsB3wB+thXrvS30t82Bmflw33MmM/8F+KOu++1g6y72BeBk4ATgc1uvytvEwDV2\nI+IYYM/MvAG2y3Nms3aJ8mRPAx4E/h1sF8pCQK8DfouySBDQrHZZDD32/vVSN7Hw9VPPBFZl5ruq\nfRw/qUpOySTXkl2VmWdk5tuAF0fEs7e4dtOzWbtExF7ABcAb5rmvJp0zm7VLFmcAtwIvm8e+mtwu\nABdm5kJ627Vol8UQ7P3rpZ7OwtdPPQjYPyKeQunF1f0i/UmuJXt4ROwREXsAh1Hvtulvlx8BlwFn\nZeZ8J5dr0jnT3y47RcTrqvt7ML9hgya3y2uAMyLiGuDIiPjYPPZVj3bJzKn+A54O3AKcD3yP8oFf\nz/2q3K7Apwc8/pqu2ycD/0wZY/4M5QOTqT/HSbZN/3Ou7h8EfHBE25xOeTv6MPChaT+3CbfLWylD\nDddU/07bHs+ZAe1yAPBV4FrgQjpfSNze22X3Ic+5Me2yKL55Wn36fDxwbWZu6L8/3dpNl20xmO0y\nmO0y2PbWLosi2CVJk7MYxtglSRNksEtSwxjsktQwBrskNYzBLkkN8/8BjJLgjEW7BiEAAAAASUVO\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1bd95470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plt.subplot(212)\n",
    "plt.title(\"sleep rescore-2 after sleep monitoring program\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_rescore.values())\n",
    "plt.show()\n",
    "\n",
    "# 睡眠指标统计：入睡时间time_fall， 起床时间time_get， 睡眠总时长t_sleep, 深睡眠时长t_deep， 浅睡眠时长t_light，睡眠过程中清醒时长t_wake\n",
    "\n",
    "\n",
    "#如果检测点前10分钟清醒,检测点后10分钟睡眠，这判定为入睡时间点\n",
    "for key in dic_rescore.keys():\n",
    "    if dic_rescore[key]<2:\n",
    "        if (key > 9 and key < len(dic_rescore)-10 and all([dic_rescore[key-i] == 2 for i in range(1,11)]) and all([dic_rescore[key+i] < 2 for i in range(1,11)])):\n",
    "            time_fall = m2t(key+m_start)\n",
    "            print(\"Time to fall sleep:\", time_fall)\n",
    "            break\n",
    "        if (key < 9 or key > len(dic_rescore)-10):\n",
    "            time_fall = m2t(key+m_start)\n",
    "            print(\"Time to fall sleep:\", time_fall)\n",
    "            break\n",
    "# 相反的，如果检测点前10分钟睡眠，检测点后10分钟清醒，则判定为起床时间点\n",
    "for key in dic_rescore.keys():\n",
    "    if (key > 9 and key < len(dic_rescore)-10 and dic_rescore[key] == 2 and all([dic_rescore[key-i] < 2 for i in range(1,11)]) and all([dic_rescore[key+i] == 2 for i in range(1,11)])):\n",
    "        time_get = m2t(key+m_start)\n",
    "        print(\"Time to get up:\", time_get, \",and out of sleep monitoring program.\")\n",
    "        #退出睡眠监测程序，并重新检测入睡时间点，即起床后——未进入睡眠程序前的点赋值为2，此模块待完善！！！\n",
    "        for kk in range(key, t):\n",
    "            dic_rescore[kk] = 2\n",
    "#           print(dic_rescore[key])\n",
    "        break\n",
    "\n",
    "# 睡眠过程中的清醒时长，如果检测点前10分钟睡眠，清醒时间段后10分钟睡眠，则判定为睡眠过程中清醒 \n",
    "for key in dic_rescore.keys():\n",
    "    if (key > 9 and key < len(dic_rescore)-10 and dic_rescore[key] == 2 and all([dic_rescore[key-i] < 2 for i in range(1,11)])):\n",
    "        wake_in_sleep = 0\n",
    "        while (key+wake_in_sleep < len(dic_rescore)-10):\n",
    "            if (dic_rescore[key+wake_in_sleep] == 2):\n",
    "                wake_in_sleep+=1\n",
    "            else:\n",
    "                break\n",
    "        if all([dic_rescore[key+wake_in_sleep+i] < 2 for i in range(1,10)]):\n",
    "            print(\"Wake time during sleep:\", m2t(key+wake_in_sleep+m_start))\n",
    "            print(\"The length of wake time during sleep:\", wake_in_sleep,\"minutes\")\n",
    "     \n",
    "t_deep = list(dic_rescore.values()).count(0)/60\n",
    "t_light = list(dic_rescore.values()).count(1)/60\n",
    "t_wake = list(dic_rescore.values()).count(2)/60\n",
    "t_sleep = t_deep + t_light\n",
    "\n",
    "\n",
    "print(\"Time of sleep:\", '%.2f' % t_sleep, \"hours\")\n",
    "print(\"Time of deep sleep:\", '%.2f' % t_deep,\"hours\")\n",
    "print(\"Time of light sleep:\", '%.2f' % t_light,\"hours\")\n",
    "# print(\"Time of wake:\", '%.2f' % t_wake,\"hours\")\n",
    "\n",
    "plt.title(\"sleep rescore-3 after get-up monitoring program\")\n",
    "plt.xticks([tt for tt in range(m_start,t+m_start,60)],\n",
    "  [m2t(tt) for tt in range(m_start,t+m_start,60)])\n",
    "plt.plot(axis_m, dic_rescore.values())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
